{"version":3,"sources":["assets/jsd-logo.png","src/game/game.html","src/game/wasm_exec.js","src/game/pako.min.js","src/themes/lightTheme.ts","src/themes/styles.ts","src/themes/darkTheme.ts","src/utils/cacheStore.web.tsx","src/constants/serverURL.ts","src/components/fetchWithTimeout.tsx","src/utils/firebase.web.tsx","src/components/LoginForm.tsx","src/components/Login.tsx","src/components/SignUpForm.tsx","src/components/SignUp.tsx","src/components/StartGameMenu.tsx","src/components/NewGameCard.tsx","src/components/GoogleAds.tsx","src/components/DominoTable.tsx","src/components/Play.tsx","src/components/UploadImage.tsx","src/components/UserAccount.tsx","src/components/PlayerRank.tsx","src/components/PlayerRankings.tsx","src/notification-subscribe.js","src/components/HomeMenu.tsx","src/components/Game.tsx","src/components/GameMenu.tsx","src/components/ChatWindow.web.tsx","src/components/GameScreen.tsx","src/components/ChangePasswordForm.tsx","src/components/ChangePassword.tsx","src/components/PasswordResetForm.tsx","src/components/PasswordReset.tsx","src/serviceWorkerRegistration.js","App.web.tsx","index.js","src/utils/parseToken.tsx"],"names":["module","exports","___HTML_LOADER_GET_SOURCE_FROM_IMPORT___","___HTML_LOADER_IMPORT_0___","___HTML_LOADER_IMPORT_1___","___HTML_LOADER_IMPORT_2___","code","enosys","err","Error","globalThis","fs","outputBuf","constants","O_WRONLY","O_RDWR","O_CREAT","O_TRUNC","O_APPEND","O_EXCL","writeSync","fd","buf","nl","decoder","decode","lastIndexOf","console","log","substr","length","write","offset","position","callback","this","chmod","path","mode","chown","uid","gid","close","fchmod","fchown","fstat","fsync","ftruncate","lchown","link","lstat","mkdir","perm","open","flags","read","buffer","readdir","readlink","rename","from","to","rmdir","stat","symlink","truncate","unlink","utimes","atime","mtime","process","getuid","getgid","geteuid","getegid","getgroups","pid","ppid","umask","cwd","chdir","crypto","performance","TextEncoder","TextDecoder","encoder","Go","argv","env","exit","warn","_exitPromise","Promise","resolve","_resolveExitPromise","_pendingEvent","_scheduledTimeouts","Map","_nextCallbackTimeoutID","setInt64","addr","v","mem","setUint32","Math","floor","getInt64","getUint32","getInt32","loadValue","f","getFloat64","isNaN","id","_values","storeValue","setFloat64","undefined","_ids","get","_idPool","pop","_goRefCounts","set","typeFlag","loadSlice","array","len","Uint8Array","_inst","loadSliceOfValues","a","Array","i","loadString","saddr","DataView","timeOrigin","Date","now","importObject","go","sp","exited","p","n","msec","getTime","setInt32","setTimeout","_resume","has","clearTimeout","delete","getRandomValues","push","result","Reflect","getsp","deleteProperty","m","args","apply","setUint8","construct","parseInt","str","encode","String","dst","src","Uint8ClampedArray","toCopy","subarray","value","instance","async","WebAssembly","Instance","NaN","fill","Infinity","strPtr","ptr","bytes","argc","argvPtrs","forEach","arg","Object","keys","sort","key","run","resume","event","arguments","t","e","r","l","o","h","d","_","c","u","g","w","b","static_tree","extra_bits","extra_base","elems","max_length","has_stree","k","dyn_tree","max_code","stat_desc","y","pending_buf","pending","x","bi_valid","bi_buf","z","A","E","R","dyn_ltree","dyn_dtree","bl_tree","opt_len","static_len","last_lit","matches","Z","U","s","S","heap","heap_len","depth","D","d_buf","l_buf","O","heap_max","bl_count","T","I","F","L","window","N","l_desc","d_desc","bl_desc","level","strm","data_type","strategy","lit_bufsize","B","C","Uint32Array","M","H","2","1","0","j","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","Z_TREES","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","K","P","Y","G","X","W","q","J","Q","V","$","tt","et","at","it","nt","st","rt","lt","ot","dt","_t","ct","gt","msg","pt","mt","kt","hash_shift","hash_mask","vt","state","avail_out","output","pending_out","next_out","total_out","yt","block_start","strstart","xt","zt","At","avail_in","input","next_in","wrap","adler","total_in","Et","max_chain_length","prev_length","nice_match","w_size","w_mask","prev","good_match","lookahead","match_start","Rt","window_size","hash_size","head","insert","ins_h","Zt","match_length","max_lazy_match","Ut","prev_match","match_available","St","good_length","max_lazy","nice_length","max_chain","func","Dt","pending_buf_size","Ot","status","gzhead","gzindex","method","last_flush","w_bits","hash_bits","Uint16Array","Tt","It","Ft","Lt","text","hcrc","extra","name","comment","time","os","charCodeAt","Nt","prototype","hasOwnProperty","call","Bt","slice","shift","TypeError","Ct","Mt","fromCharCode","Ht","jt","Kt","Pt","Yt","Gt","toString","Xt","Wt","qt","Jt","Qt","Vt","$t","te","ee","ae","options","chunkSize","windowBits","memLevel","raw","gzip","ended","chunks","header","dictionary","_dict_set","ie","onData","onEnd","ne","se","dmax","wsize","whave","wnext","hold","bits","lencode","distcode","lenbits","distbits","sane","le","oe","he","de","_e","fe","ce","ue","we","be","ge","pe","me","ke","ve","ye","Ae","Ee","last","havedict","check","total","wbits","ncode","nlen","ndist","have","next","lens","work","lendyn","distdyn","back","was","De","Oe","Re","Int32Array","Ze","Ue","Se","Te","Ie","Fe","Le","done","xflags","extra_len","Ne","Be","Ce","Me","He","je","Ke","Pe","Ye","Ge","Xe","We","join","qe","na","sa","ra","la","oa","ha","da","_a","fa","ca","Deflate","deflate","deflateRaw","Inflate","inflate","inflateRaw","ungzip","default","defineProperty","lightTheme","StyleSheet","create","closeModalIcon","alignSelf","top","right","titleText","fontSize","modalView","height","startGameDifficulty","flexDirection","width","alignItems","justifyContent","startGameButton","margin","startGameContainer","dominoBorder","borderRightColor","borderRightWidth","dominoPlayerText","color","textAlign","marginBottom","instructionsText","dominoPlayerTextJoin","fontStyle","dominoScoreText","dominoPlayer","flex","marginLeft","marginRight","dominoPlayerPic","resizeMode","borderRadius","dominoPlayerButton","dominoTableHolder","dominoTableHolderButton","playButton","marginTop","modalOverlay","bottom","left","backgroundColor","stickToTop","adCard","marginHorizontal","newGameCard","dominoTable","newGameTitle","newGameText","newGame","textInputIcon","paddingTop","textInputIconContainer","spinnerContainer","logo","primaryButtonStyle","textInputIconStyle","textInputStyle","incorrectPasswordStyle","signupContainer","signupContainer2","formContainer","signupFormContainer","logoContainer","tabLogoContainer","profPic","adIframe","tabLogo","tabLogo2","labelText","padding","tabNavContainer","homeMenu","playContent","paddingBottom","container2","container","genericText","genericText2","buttonText","errorText","successText","item","marginVertical","title","styles","styleTheme","placeholderTextColor","primaryButtonColor","tabNavigation","indicatorStyle","innerHeight","getCookie","cname","decodeURIComponent","document","cookie","split","charAt","substring","indexOf","storeCache","cvalue","exdays","setTime","expires","toUTCString","setCookie","getCache","cookiePromise","reject","serverURL","serverWSURL","fetchWithTimeout","resource","timeout","controller","AbortController","abort","fetch","signal","response","analytics","initializeApp","apiKey","authDomain","projectId","storageBucket","messagingSenderId","appId","measurementId","getAnalytics","logFirebaseEvent","eventName","eventMeta","logEvent","LoginForm","props","userIdentity","userPassword","showForm","passwordStyle","passwordPlaceholder","showPassword","passwordIcon","setState","loginResponse","token","json","then","data","storeToken","navigation","navigate","headers","body","JSON","stringify","requestOptions","handleAuthCheckResponse","identifier","password","handleResponse","catch","Platform","OS","location","href","gameMode","authCheck","View","TextInput","onChangeText","setUsername","placeholder","autoCompleteType","style","setPassword","secureTextEntry","onPress","togglePasswordShow","type","Button","login","accessibilityLabel","Text","transitionToSignUp","guestLogin","forgotPassword","ActivityIndicator","size","renderForm","renderSpinner","Component","Login","Image","source","require","StatusBar","ValidateEmail","inputText","match","SignUpForm","fullname","usernames","confirmPassword","userEmail","agree","confirmPasswordStyle","confirmPasswordPlaceholder","showConfirmPassword","confirmPasswordIcon","username","trim","email","setName","setEmail","setConfirmPassword","toggleConfirmPasswordShow","CheckBox","disabled","onValueChange","newValue","setToggleCheckBox","openTermsAndConditions","register","transitionToLogin","SignUp","StartGameMenu","difficultyHard","randomSeed","dominoGameMode","connectionType","online","gameType","handleCreateGameResponse","startGame","random","NewGameCard","startGameVisible","containerStyle","Title","Divider","AdComponent","adsbygoogle","className","display","data-ad-client","data-ad-slot","data-ad-format","data-full-width-responsive","React","DominoTable","nativeAd","adId","adSrc","ad","user","parseJwt","is_guest","downloadList","gameID","classicMode","gameId","handleGameInteraction","playerMeta","gameState","appGame","playerAction","buttonTitle","displayname","buttonDisabled","spotOccupied","playerTextStyle","playerActionButton","joinGame","joinClassicGame","leaveGame","leaveClassicGame","numberOfLines","wins","uri","profilePicURL","playerInvolved","playGame","spectateGame","playClassicGame","spectateClassicGame","script","createElement","appendChild","player1","player2","player3","player4","cutthroatDivider","appInfoMessage","getPlayer","actionButton","getActionButton","Play","gameList","classicGameList","refresh","updateGameList","updateClassicGameList","concat","handleGetGameList","error","handleGetClassicGameList","getGameList","setInterval","downloadClassicList","getClassicList","FlatList","renderItem","renderTable","keyExtractor","extraData","contentContainerStyle","flexGrow","fetchImageFromUri","blob","uploadPhoto","picture","FormData","append","res","UploadImage","addImage","ImagePicker","mediaTypes","Images","allowsEditing","aspect","quality","_image","cancelled","setImage","image","imageW","img","img2","includes","imageUploaderStyles","uploadBtnContainer","TouchableOpacity","uploadBtn","AntDesign","elevation","overflow","opacity","UserAccount","profilePictureURL","onlinePartnerRoundWins","onlinePartnerRounds","onlinePartnerGames","onlinePartnerWins","onlineCutthroatRoundWins","onlineCutthroatRounds","onlineCutthroatGames","onlineCutthroatWins","getUserInfo","guest","bitcoinTitle","handleRefreshResponse","handleLogoutResponse","profPicURL","onlinePartnerGameWins","onlineCutthroatGameWins","handleUserInfoResponse","logoutUser","renderAccount","ordinal_suffix_of","PlayerRank","profPicSource","round","eloScore","label","testID","PlayerRankings","rankingList","handleToggle","bind","updateRankingsList","rankings","handleGetRankings","buttonColor","borderColor","initial","getRankingList","urlBase64ToUint8Array","base64String","base64","repeat","replace","rawData","atob","outputArray","Tab","createMaterialTopTabNavigator","HomeMenu","SafeAreaView","Navigator","backBehavior","barStyle","tabBarOptions","Screen","component","Notification","permission","requestPermission","navigator","serviceWorker","ready","registration","subscribeURL","subscription","pushManager","subscribe","userVisibleOnly","applicationServerKey","notificationSubscriber","Game","navState","canGoBack","GameMenu","quitToMenu","Linking","openURL","ChatWindow","chatLink","pingInterval","ws","WebSocket","onopen","send","messages","loadEarlier","typingText","isLoadingEarlier","unread","_isMounted","onSend","onReceive","resetChatNotification","_isAlright","errorFunc","closeFunc","compon","clearInterval","onmessage","parse","onerror","reason","onclose","message","messageData","voiceData","previousState","GiftedChat","notifData","Store","addNotification","animationIn","animationOut","dismiss","duration","onScreen","_id","createdAt","wrapperStyle","footerContainer","footerText","nextLocation","renderUsernameOnMessage","renderBubble","GameScreen","chatTitle","setChatTitle","route","params","children","ChangePasswordForm","activation_key","changePassword","ChangePassword","PasswordResetForm","resetPassword","PasswordReset","isLocalhost","Boolean","hostname","registerValidSW","swUrl","config","onupdatefound","installingWorker","installing","onstatechange","onUpdate","onSuccess","Stack","createStackNavigator","linking","prefixes","screens","URL","origin","addEventListener","contentType","unregister","reload","checkValidServiceWorker","serviceWorkerRegistration","registerRootComponent","NavigationContainer","fallback","screenOptions","headerShown","base64Url","jsonPayload","map","global","btoa"],"mappings":"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","file":"static/js/app.d5177d05.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/jsd-logo.637ec2ea.png\";","// Imports\nvar ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___ = require(\"../../node_modules/html-loader/dist/runtime/getUrl.js\");\nvar ___HTML_LOADER_IMPORT_0___ = require(\"./lib.js\");\nvar ___HTML_LOADER_IMPORT_1___ = require(\"./wasm_exec.js\");\nvar ___HTML_LOADER_IMPORT_2___ = require(\"./pako.min.js\");\n// Module\nvar ___HTML_LOADER_REPLACER_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___);\nvar ___HTML_LOADER_REPLACER_1___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_1___);\nvar ___HTML_LOADER_REPLACER_2___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_2___);\nvar code = \" Play
\";\n// Exports\nmodule.exports = code;","// Copyright 2018 The Go Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n\"use strict\";\n\n(() => {\n\tconst enosys = () => {\n\t\tconst err = new Error(\"not implemented\");\n\t\terr.code = \"ENOSYS\";\n\t\treturn err;\n\t};\n\n\tif (!globalThis.fs) {\n\t\tlet outputBuf = \"\";\n\t\tglobalThis.fs = {\n\t\t\tconstants: { O_WRONLY: -1, O_RDWR: -1, O_CREAT: -1, O_TRUNC: -1, O_APPEND: -1, O_EXCL: -1 }, // unused\n\t\t\twriteSync(fd, buf) {\n\t\t\t\toutputBuf += decoder.decode(buf);\n\t\t\t\tconst nl = outputBuf.lastIndexOf(\"\\n\");\n\t\t\t\tif (nl != -1) {\n\t\t\t\t\tconsole.log(outputBuf.substr(0, nl));\n\t\t\t\t\toutputBuf = outputBuf.substr(nl + 1);\n\t\t\t\t}\n\t\t\t\treturn buf.length;\n\t\t\t},\n\t\t\twrite(fd, buf, offset, length, position, callback) {\n\t\t\t\tif (offset !== 0 || length !== buf.length || position !== null) {\n\t\t\t\t\tcallback(enosys());\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst n = this.writeSync(fd, buf);\n\t\t\t\tcallback(null, n);\n\t\t\t},\n\t\t\tchmod(path, mode, callback) { callback(enosys()); },\n\t\t\tchown(path, uid, gid, callback) { callback(enosys()); },\n\t\t\tclose(fd, callback) { callback(enosys()); },\n\t\t\tfchmod(fd, mode, callback) { callback(enosys()); },\n\t\t\tfchown(fd, uid, gid, callback) { callback(enosys()); },\n\t\t\tfstat(fd, callback) { callback(enosys()); },\n\t\t\tfsync(fd, callback) { callback(null); },\n\t\t\tftruncate(fd, length, callback) { callback(enosys()); },\n\t\t\tlchown(path, uid, gid, callback) { callback(enosys()); },\n\t\t\tlink(path, link, callback) { callback(enosys()); },\n\t\t\tlstat(path, callback) { callback(enosys()); },\n\t\t\tmkdir(path, perm, callback) { callback(enosys()); },\n\t\t\topen(path, flags, mode, callback) { callback(enosys()); },\n\t\t\tread(fd, buffer, offset, length, position, callback) { callback(enosys()); },\n\t\t\treaddir(path, callback) { callback(enosys()); },\n\t\t\treadlink(path, callback) { callback(enosys()); },\n\t\t\trename(from, to, callback) { callback(enosys()); },\n\t\t\trmdir(path, callback) { callback(enosys()); },\n\t\t\tstat(path, callback) { callback(enosys()); },\n\t\t\tsymlink(path, link, callback) { callback(enosys()); },\n\t\t\ttruncate(path, length, callback) { callback(enosys()); },\n\t\t\tunlink(path, callback) { callback(enosys()); },\n\t\t\tutimes(path, atime, mtime, callback) { callback(enosys()); },\n\t\t};\n\t}\n\n\tif (!globalThis.process) {\n\t\tglobalThis.process = {\n\t\t\tgetuid() { return -1; },\n\t\t\tgetgid() { return -1; },\n\t\t\tgeteuid() { return -1; },\n\t\t\tgetegid() { return -1; },\n\t\t\tgetgroups() { throw enosys(); },\n\t\t\tpid: -1,\n\t\t\tppid: -1,\n\t\t\tumask() { throw enosys(); },\n\t\t\tcwd() { throw enosys(); },\n\t\t\tchdir() { throw enosys(); },\n\t\t}\n\t}\n\n\tif (!globalThis.crypto) {\n\t\tthrow new Error(\"globalThis.crypto is not available, polyfill required (crypto.getRandomValues only)\");\n\t}\n\n\tif (!globalThis.performance) {\n\t\tthrow new Error(\"globalThis.performance is not available, polyfill required (performance.now only)\");\n\t}\n\n\tif (!globalThis.TextEncoder) {\n\t\tthrow new Error(\"globalThis.TextEncoder is not available, polyfill required\");\n\t}\n\n\tif (!globalThis.TextDecoder) {\n\t\tthrow new Error(\"globalThis.TextDecoder is not available, polyfill required\");\n\t}\n\n\tconst encoder = new TextEncoder(\"utf-8\");\n\tconst decoder = new TextDecoder(\"utf-8\");\n\n\tglobalThis.Go = class {\n\t\tconstructor() {\n\t\t\tthis.argv = [\"js\"];\n\t\t\tthis.env = {};\n\t\t\tthis.exit = (code) => {\n\t\t\t\tif (code !== 0) {\n\t\t\t\t\tconsole.warn(\"exit code:\", code);\n\t\t\t\t}\n\t\t\t};\n\t\t\tthis._exitPromise = new Promise((resolve) => {\n\t\t\t\tthis._resolveExitPromise = resolve;\n\t\t\t});\n\t\t\tthis._pendingEvent = null;\n\t\t\tthis._scheduledTimeouts = new Map();\n\t\t\tthis._nextCallbackTimeoutID = 1;\n\n\t\t\tconst setInt64 = (addr, v) => {\n\t\t\t\tthis.mem.setUint32(addr + 0, v, true);\n\t\t\t\tthis.mem.setUint32(addr + 4, Math.floor(v / 4294967296), true);\n\t\t\t}\n\n\t\t\tconst getInt64 = (addr) => {\n\t\t\t\tconst low = this.mem.getUint32(addr + 0, true);\n\t\t\t\tconst high = this.mem.getInt32(addr + 4, true);\n\t\t\t\treturn low + high * 4294967296;\n\t\t\t}\n\n\t\t\tconst loadValue = (addr) => {\n\t\t\t\tconst f = this.mem.getFloat64(addr, true);\n\t\t\t\tif (f === 0) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\tif (!isNaN(f)) {\n\t\t\t\t\treturn f;\n\t\t\t\t}\n\n\t\t\t\tconst id = this.mem.getUint32(addr, true);\n\t\t\t\treturn this._values[id];\n\t\t\t}\n\n\t\t\tconst storeValue = (addr, v) => {\n\t\t\t\tconst nanHead = 0x7FF80000;\n\n\t\t\t\tif (typeof v === \"number\" && v !== 0) {\n\t\t\t\t\tif (isNaN(v)) {\n\t\t\t\t\t\tthis.mem.setUint32(addr + 4, nanHead, true);\n\t\t\t\t\t\tthis.mem.setUint32(addr, 0, true);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.mem.setFloat64(addr, v, true);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (v === undefined) {\n\t\t\t\t\tthis.mem.setFloat64(addr, 0, true);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet id = this._ids.get(v);\n\t\t\t\tif (id === undefined) {\n\t\t\t\t\tid = this._idPool.pop();\n\t\t\t\t\tif (id === undefined) {\n\t\t\t\t\t\tid = this._values.length;\n\t\t\t\t\t}\n\t\t\t\t\tthis._values[id] = v;\n\t\t\t\t\tthis._goRefCounts[id] = 0;\n\t\t\t\t\tthis._ids.set(v, id);\n\t\t\t\t}\n\t\t\t\tthis._goRefCounts[id]++;\n\t\t\t\tlet typeFlag = 0;\n\t\t\t\tswitch (typeof v) {\n\t\t\t\t\tcase \"object\":\n\t\t\t\t\t\tif (v !== null) {\n\t\t\t\t\t\t\ttypeFlag = 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"string\":\n\t\t\t\t\t\ttypeFlag = 2;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"symbol\":\n\t\t\t\t\t\ttypeFlag = 3;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"function\":\n\t\t\t\t\t\ttypeFlag = 4;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tthis.mem.setUint32(addr + 4, nanHead | typeFlag, true);\n\t\t\t\tthis.mem.setUint32(addr, id, true);\n\t\t\t}\n\n\t\t\tconst loadSlice = (addr) => {\n\t\t\t\tconst array = getInt64(addr + 0);\n\t\t\t\tconst len = getInt64(addr + 8);\n\t\t\t\treturn new Uint8Array(this._inst.exports.mem.buffer, array, len);\n\t\t\t}\n\n\t\t\tconst loadSliceOfValues = (addr) => {\n\t\t\t\tconst array = getInt64(addr + 0);\n\t\t\t\tconst len = getInt64(addr + 8);\n\t\t\t\tconst a = new Array(len);\n\t\t\t\tfor (let i = 0; i < len; i++) {\n\t\t\t\t\ta[i] = loadValue(array + i * 8);\n\t\t\t\t}\n\t\t\t\treturn a;\n\t\t\t}\n\n\t\t\tconst loadString = (addr) => {\n\t\t\t\tconst saddr = getInt64(addr + 0);\n\t\t\t\tconst len = getInt64(addr + 8);\n\t\t\t\treturn decoder.decode(new DataView(this._inst.exports.mem.buffer, saddr, len));\n\t\t\t}\n\n\t\t\tconst timeOrigin = Date.now() - performance.now();\n\t\t\tthis.importObject = {\n\t\t\t\tgo: {\n\t\t\t\t\t// Go's SP does not change as long as no Go code is running. Some operations (e.g. calls, getters and setters)\n\t\t\t\t\t// may synchronously trigger a Go event handler. This makes Go code get executed in the middle of the imported\n\t\t\t\t\t// function. A goroutine can switch to a new stack if the current stack is too small (see morestack function).\n\t\t\t\t\t// This changes the SP, thus we have to update the SP used by the imported function.\n\n\t\t\t\t\t// func wasmExit(code int32)\n\t\t\t\t\t\"runtime.wasmExit\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tconst code = this.mem.getInt32(sp + 8, true);\n\t\t\t\t\t\tthis.exited = true;\n\t\t\t\t\t\tdelete this._inst;\n\t\t\t\t\t\tdelete this._values;\n\t\t\t\t\t\tdelete this._goRefCounts;\n\t\t\t\t\t\tdelete this._ids;\n\t\t\t\t\t\tdelete this._idPool;\n\t\t\t\t\t\tthis.exit(code);\n\t\t\t\t\t},\n\n\t\t\t\t\t// func wasmWrite(fd uintptr, p unsafe.Pointer, n int32)\n\t\t\t\t\t\"runtime.wasmWrite\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tconst fd = getInt64(sp + 8);\n\t\t\t\t\t\tconst p = getInt64(sp + 16);\n\t\t\t\t\t\tconst n = this.mem.getInt32(sp + 24, true);\n\t\t\t\t\t\tfs.writeSync(fd, new Uint8Array(this._inst.exports.mem.buffer, p, n));\n\t\t\t\t\t},\n\n\t\t\t\t\t// func resetMemoryDataView()\n\t\t\t\t\t\"runtime.resetMemoryDataView\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tthis.mem = new DataView(this._inst.exports.mem.buffer);\n\t\t\t\t\t},\n\n\t\t\t\t\t// func nanotime1() int64\n\t\t\t\t\t\"runtime.nanotime1\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tsetInt64(sp + 8, (timeOrigin + performance.now()) * 1000000);\n\t\t\t\t\t},\n\n\t\t\t\t\t// func walltime() (sec int64, nsec int32)\n\t\t\t\t\t\"runtime.walltime\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tconst msec = (new Date).getTime();\n\t\t\t\t\t\tsetInt64(sp + 8, msec / 1000);\n\t\t\t\t\t\tthis.mem.setInt32(sp + 16, (msec % 1000) * 1000000, true);\n\t\t\t\t\t},\n\n\t\t\t\t\t// func scheduleTimeoutEvent(delay int64) int32\n\t\t\t\t\t\"runtime.scheduleTimeoutEvent\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tconst id = this._nextCallbackTimeoutID;\n\t\t\t\t\t\tthis._nextCallbackTimeoutID++;\n\t\t\t\t\t\tthis._scheduledTimeouts.set(id, setTimeout(\n\t\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t\tthis._resume();\n\t\t\t\t\t\t\t\twhile (this._scheduledTimeouts.has(id)) {\n\t\t\t\t\t\t\t\t\t// for some reason Go failed to register the timeout event, log and try again\n\t\t\t\t\t\t\t\t\t// (temporary workaround for https://github.com/golang/go/issues/28975)\n\t\t\t\t\t\t\t\t\tconsole.warn(\"scheduleTimeoutEvent: missed timeout event\");\n\t\t\t\t\t\t\t\t\tthis._resume();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tgetInt64(sp + 8) + 1, // setTimeout has been seen to fire up to 1 millisecond early\n\t\t\t\t\t\t));\n\t\t\t\t\t\tthis.mem.setInt32(sp + 16, id, true);\n\t\t\t\t\t},\n\n\t\t\t\t\t// func clearTimeoutEvent(id int32)\n\t\t\t\t\t\"runtime.clearTimeoutEvent\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tconst id = this.mem.getInt32(sp + 8, true);\n\t\t\t\t\t\tclearTimeout(this._scheduledTimeouts.get(id));\n\t\t\t\t\t\tthis._scheduledTimeouts.delete(id);\n\t\t\t\t\t},\n\n\t\t\t\t\t// func getRandomData(r []byte)\n\t\t\t\t\t\"runtime.getRandomData\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tcrypto.getRandomValues(loadSlice(sp + 8));\n\t\t\t\t\t},\n\n\t\t\t\t\t// func finalizeRef(v ref)\n\t\t\t\t\t\"syscall/js.finalizeRef\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tconst id = this.mem.getUint32(sp + 8, true);\n\t\t\t\t\t\tthis._goRefCounts[id]--;\n\t\t\t\t\t\tif (this._goRefCounts[id] === 0) {\n\t\t\t\t\t\t\tconst v = this._values[id];\n\t\t\t\t\t\t\tthis._values[id] = null;\n\t\t\t\t\t\t\tthis._ids.delete(v);\n\t\t\t\t\t\t\tthis._idPool.push(id);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\t\t\t\t\t// func stringVal(value string) ref\n\t\t\t\t\t\"syscall/js.stringVal\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tstoreValue(sp + 24, loadString(sp + 8));\n\t\t\t\t\t},\n\n\t\t\t\t\t// func valueGet(v ref, p string) ref\n\t\t\t\t\t\"syscall/js.valueGet\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tconst result = Reflect.get(loadValue(sp + 8), loadString(sp + 16));\n\t\t\t\t\t\tsp = this._inst.exports.getsp() >>> 0; // see comment above\n\t\t\t\t\t\tstoreValue(sp + 32, result);\n\t\t\t\t\t},\n\n\t\t\t\t\t// func valueSet(v ref, p string, x ref)\n\t\t\t\t\t\"syscall/js.valueSet\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tReflect.set(loadValue(sp + 8), loadString(sp + 16), loadValue(sp + 32));\n\t\t\t\t\t},\n\n\t\t\t\t\t// func valueDelete(v ref, p string)\n\t\t\t\t\t\"syscall/js.valueDelete\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tReflect.deleteProperty(loadValue(sp + 8), loadString(sp + 16));\n\t\t\t\t\t},\n\n\t\t\t\t\t// func valueIndex(v ref, i int) ref\n\t\t\t\t\t\"syscall/js.valueIndex\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tstoreValue(sp + 24, Reflect.get(loadValue(sp + 8), getInt64(sp + 16)));\n\t\t\t\t\t},\n\n\t\t\t\t\t// valueSetIndex(v ref, i int, x ref)\n\t\t\t\t\t\"syscall/js.valueSetIndex\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tReflect.set(loadValue(sp + 8), getInt64(sp + 16), loadValue(sp + 24));\n\t\t\t\t\t},\n\n\t\t\t\t\t// func valueCall(v ref, m string, args []ref) (ref, bool)\n\t\t\t\t\t\"syscall/js.valueCall\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst v = loadValue(sp + 8);\n\t\t\t\t\t\t\tconst m = Reflect.get(v, loadString(sp + 16));\n\t\t\t\t\t\t\tconst args = loadSliceOfValues(sp + 32);\n\t\t\t\t\t\t\tconst result = Reflect.apply(m, v, args);\n\t\t\t\t\t\t\tsp = this._inst.exports.getsp() >>> 0; // see comment above\n\t\t\t\t\t\t\tstoreValue(sp + 56, result);\n\t\t\t\t\t\t\tthis.mem.setUint8(sp + 64, 1);\n\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\tsp = this._inst.exports.getsp() >>> 0; // see comment above\n\t\t\t\t\t\t\tstoreValue(sp + 56, err);\n\t\t\t\t\t\t\tthis.mem.setUint8(sp + 64, 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\t\t\t\t\t// func valueInvoke(v ref, args []ref) (ref, bool)\n\t\t\t\t\t\"syscall/js.valueInvoke\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst v = loadValue(sp + 8);\n\t\t\t\t\t\t\tconst args = loadSliceOfValues(sp + 16);\n\t\t\t\t\t\t\tconst result = Reflect.apply(v, undefined, args);\n\t\t\t\t\t\t\tsp = this._inst.exports.getsp() >>> 0; // see comment above\n\t\t\t\t\t\t\tstoreValue(sp + 40, result);\n\t\t\t\t\t\t\tthis.mem.setUint8(sp + 48, 1);\n\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\tsp = this._inst.exports.getsp() >>> 0; // see comment above\n\t\t\t\t\t\t\tstoreValue(sp + 40, err);\n\t\t\t\t\t\t\tthis.mem.setUint8(sp + 48, 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\t\t\t\t\t// func valueNew(v ref, args []ref) (ref, bool)\n\t\t\t\t\t\"syscall/js.valueNew\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tconst v = loadValue(sp + 8);\n\t\t\t\t\t\t\tconst args = loadSliceOfValues(sp + 16);\n\t\t\t\t\t\t\tconst result = Reflect.construct(v, args);\n\t\t\t\t\t\t\tsp = this._inst.exports.getsp() >>> 0; // see comment above\n\t\t\t\t\t\t\tstoreValue(sp + 40, result);\n\t\t\t\t\t\t\tthis.mem.setUint8(sp + 48, 1);\n\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\tsp = this._inst.exports.getsp() >>> 0; // see comment above\n\t\t\t\t\t\t\tstoreValue(sp + 40, err);\n\t\t\t\t\t\t\tthis.mem.setUint8(sp + 48, 0);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\t\t\t\t\t// func valueLength(v ref) int\n\t\t\t\t\t\"syscall/js.valueLength\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tsetInt64(sp + 16, parseInt(loadValue(sp + 8).length));\n\t\t\t\t\t},\n\n\t\t\t\t\t// valuePrepareString(v ref) (ref, int)\n\t\t\t\t\t\"syscall/js.valuePrepareString\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tconst str = encoder.encode(String(loadValue(sp + 8)));\n\t\t\t\t\t\tstoreValue(sp + 16, str);\n\t\t\t\t\t\tsetInt64(sp + 24, str.length);\n\t\t\t\t\t},\n\n\t\t\t\t\t// valueLoadString(v ref, b []byte)\n\t\t\t\t\t\"syscall/js.valueLoadString\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tconst str = loadValue(sp + 8);\n\t\t\t\t\t\tloadSlice(sp + 16).set(str);\n\t\t\t\t\t},\n\n\t\t\t\t\t// func valueInstanceOf(v ref, t ref) bool\n\t\t\t\t\t\"syscall/js.valueInstanceOf\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tthis.mem.setUint8(sp + 24, (loadValue(sp + 8) instanceof loadValue(sp + 16)) ? 1 : 0);\n\t\t\t\t\t},\n\n\t\t\t\t\t// func copyBytesToGo(dst []byte, src ref) (int, bool)\n\t\t\t\t\t\"syscall/js.copyBytesToGo\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tconst dst = loadSlice(sp + 8);\n\t\t\t\t\t\tconst src = loadValue(sp + 32);\n\t\t\t\t\t\tif (!(src instanceof Uint8Array || src instanceof Uint8ClampedArray)) {\n\t\t\t\t\t\t\tthis.mem.setUint8(sp + 48, 0);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst toCopy = src.subarray(0, dst.length);\n\t\t\t\t\t\tdst.set(toCopy);\n\t\t\t\t\t\tsetInt64(sp + 40, toCopy.length);\n\t\t\t\t\t\tthis.mem.setUint8(sp + 48, 1);\n\t\t\t\t\t},\n\n\t\t\t\t\t// func copyBytesToJS(dst ref, src []byte) (int, bool)\n\t\t\t\t\t\"syscall/js.copyBytesToJS\": (sp) => {\n\t\t\t\t\t\tsp >>>= 0;\n\t\t\t\t\t\tconst dst = loadValue(sp + 8);\n\t\t\t\t\t\tconst src = loadSlice(sp + 16);\n\t\t\t\t\t\tif (!(dst instanceof Uint8Array || dst instanceof Uint8ClampedArray)) {\n\t\t\t\t\t\t\tthis.mem.setUint8(sp + 48, 0);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst toCopy = src.subarray(0, dst.length);\n\t\t\t\t\t\tdst.set(toCopy);\n\t\t\t\t\t\tsetInt64(sp + 40, toCopy.length);\n\t\t\t\t\t\tthis.mem.setUint8(sp + 48, 1);\n\t\t\t\t\t},\n\n\t\t\t\t\t\"debug\": (value) => {\n\t\t\t\t\t\tconsole.log(value);\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tasync run(instance) {\n\t\t\tif (!(instance instanceof WebAssembly.Instance)) {\n\t\t\t\tthrow new Error(\"Go.run: WebAssembly.Instance expected\");\n\t\t\t}\n\t\t\tthis._inst = instance;\n\t\t\tthis.mem = new DataView(this._inst.exports.mem.buffer);\n\t\t\tthis._values = [ // JS values that Go currently has references to, indexed by reference id\n\t\t\t\tNaN,\n\t\t\t\t0,\n\t\t\t\tnull,\n\t\t\t\ttrue,\n\t\t\t\tfalse,\n\t\t\t\tglobalThis,\n\t\t\t\tthis,\n\t\t\t];\n\t\t\tthis._goRefCounts = new Array(this._values.length).fill(Infinity); // number of references that Go has to a JS value, indexed by reference id\n\t\t\tthis._ids = new Map([ // mapping from JS values to reference ids\n\t\t\t\t[0, 1],\n\t\t\t\t[null, 2],\n\t\t\t\t[true, 3],\n\t\t\t\t[false, 4],\n\t\t\t\t[globalThis, 5],\n\t\t\t\t[this, 6],\n\t\t\t]);\n\t\t\tthis._idPool = []; // unused ids that have been garbage collected\n\t\t\tthis.exited = false; // whether the Go program has exited\n\n\t\t\t// Pass command line arguments and environment variables to WebAssembly by writing them to the linear memory.\n\t\t\tlet offset = 4096;\n\n\t\t\tconst strPtr = (str) => {\n\t\t\t\tconst ptr = offset;\n\t\t\t\tconst bytes = encoder.encode(str + \"\\0\");\n\t\t\t\tnew Uint8Array(this.mem.buffer, offset, bytes.length).set(bytes);\n\t\t\t\toffset += bytes.length;\n\t\t\t\tif (offset % 8 !== 0) {\n\t\t\t\t\toffset += 8 - (offset % 8);\n\t\t\t\t}\n\t\t\t\treturn ptr;\n\t\t\t};\n\n\t\t\tconst argc = this.argv.length;\n\n\t\t\tconst argvPtrs = [];\n\t\t\tthis.argv.forEach((arg) => {\n\t\t\t\targvPtrs.push(strPtr(arg));\n\t\t\t});\n\t\t\targvPtrs.push(0);\n\n\t\t\tconst keys = Object.keys(this.env).sort();\n\t\t\tkeys.forEach((key) => {\n\t\t\t\targvPtrs.push(strPtr(`${key}=${this.env[key]}`));\n\t\t\t});\n\t\t\targvPtrs.push(0);\n\n\t\t\tconst argv = offset;\n\t\t\targvPtrs.forEach((ptr) => {\n\t\t\t\tthis.mem.setUint32(offset, ptr, true);\n\t\t\t\tthis.mem.setUint32(offset + 4, 0, true);\n\t\t\t\toffset += 8;\n\t\t\t});\n\n\t\t\t// The linker guarantees global data starts from at least wasmMinDataAddr.\n\t\t\t// Keep in sync with cmd/link/internal/ld/data.go:wasmMinDataAddr.\n\t\t\tconst wasmMinDataAddr = 4096 + 8192;\n\t\t\tif (offset >= wasmMinDataAddr) {\n\t\t\t\tthrow new Error(\"total length of command line and environment variables exceeds limit\");\n\t\t\t}\n\n\t\t\tthis._inst.exports.run(argc, argv);\n\t\t\tif (this.exited) {\n\t\t\t\tthis._resolveExitPromise();\n\t\t\t}\n\t\t\tawait this._exitPromise;\n\t\t}\n\n\t\t_resume() {\n\t\t\tif (this.exited) {\n\t\t\t\tthrow new Error(\"Go program has already exited\");\n\t\t\t}\n\t\t\tthis._inst.exports.resume();\n\t\t\tif (this.exited) {\n\t\t\t\tthis._resolveExitPromise();\n\t\t\t}\n\t\t}\n\n\t\t_makeFuncWrapper(id) {\n\t\t\tconst go = this;\n\t\t\treturn function () {\n\t\t\t\tconst event = { id: id, this: this, args: arguments };\n\t\t\t\tgo._pendingEvent = event;\n\t\t\t\tgo._resume();\n\t\t\t\treturn event.result;\n\t\t\t};\n\t\t}\n\t}\n})();\n","/*! pako 2.0.2 https://github.com/nodeca/pako @license (MIT AND Zlib) */\n!function (t, e) { \"object\" == typeof exports && \"undefined\" != typeof module ? e(exports) : \"function\" == typeof define && define.amd ? define([\"exports\"], e) : e((t = \"undefined\" != typeof globalThis ? globalThis : t || self).pako = {}) }(this, (function (t) { \"use strict\"; function e(t) { let e = t.length; for (; --e >= 0;)t[e] = 0 } const a = 256, i = 286, n = 30, s = 15, r = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0]), l = new Uint8Array([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13]), o = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]), h = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), d = new Array(576); e(d); const _ = new Array(60); e(_); const f = new Array(512); e(f); const c = new Array(256); e(c); const u = new Array(29); e(u); const w = new Array(n); function b(t, e, a, i, n) { this.static_tree = t, this.extra_bits = e, this.extra_base = a, this.elems = i, this.max_length = n, this.has_stree = t && t.length } let g, p, m; function k(t, e) { this.dyn_tree = t, this.max_code = 0, this.stat_desc = e } e(w); const v = t => t < 256 ? f[t] : f[256 + (t >>> 7)], y = (t, e) => { t.pending_buf[t.pending++] = 255 & e, t.pending_buf[t.pending++] = e >>> 8 & 255 }, x = (t, e, a) => { t.bi_valid > 16 - a ? (t.bi_buf |= e << t.bi_valid & 65535, y(t, t.bi_buf), t.bi_buf = e >> 16 - t.bi_valid, t.bi_valid += a - 16) : (t.bi_buf |= e << t.bi_valid & 65535, t.bi_valid += a) }, z = (t, e, a) => { x(t, a[2 * e], a[2 * e + 1]) }, A = (t, e) => { let a = 0; do { a |= 1 & t, t >>>= 1, a <<= 1 } while (--e > 0); return a >>> 1 }, E = (t, e, a) => { const i = new Array(16); let n, r, l = 0; for (n = 1; n <= s; n++)i[n] = l = l + a[n - 1] << 1; for (r = 0; r <= e; r++) { let e = t[2 * r + 1]; 0 !== e && (t[2 * r] = A(i[e]++, e)) } }, R = t => { let e; for (e = 0; e < i; e++)t.dyn_ltree[2 * e] = 0; for (e = 0; e < n; e++)t.dyn_dtree[2 * e] = 0; for (e = 0; e < 19; e++)t.bl_tree[2 * e] = 0; t.dyn_ltree[512] = 1, t.opt_len = t.static_len = 0, t.last_lit = t.matches = 0 }, Z = t => { t.bi_valid > 8 ? y(t, t.bi_buf) : t.bi_valid > 0 && (t.pending_buf[t.pending++] = t.bi_buf), t.bi_buf = 0, t.bi_valid = 0 }, U = (t, e, a, i) => { const n = 2 * e, s = 2 * a; return t[n] < t[s] || t[n] === t[s] && i[e] <= i[a] }, S = (t, e, a) => { const i = t.heap[a]; let n = a << 1; for (; n <= t.heap_len && (n < t.heap_len && U(e, t.heap[n + 1], t.heap[n], t.depth) && n++, !U(e, i, t.heap[n], t.depth));)t.heap[a] = t.heap[n], a = n, n <<= 1; t.heap[a] = i }, D = (t, e, i) => { let n, s, o, h, d = 0; if (0 !== t.last_lit) do { n = t.pending_buf[t.d_buf + 2 * d] << 8 | t.pending_buf[t.d_buf + 2 * d + 1], s = t.pending_buf[t.l_buf + d], d++, 0 === n ? z(t, s, e) : (o = c[s], z(t, o + a + 1, e), h = r[o], 0 !== h && (s -= u[o], x(t, s, h)), n--, o = v(n), z(t, o, i), h = l[o], 0 !== h && (n -= w[o], x(t, n, h))) } while (d < t.last_lit); z(t, 256, e) }, O = (t, e) => { const a = e.dyn_tree, i = e.stat_desc.static_tree, n = e.stat_desc.has_stree, r = e.stat_desc.elems; let l, o, h, d = -1; for (t.heap_len = 0, t.heap_max = 573, l = 0; l < r; l++)0 !== a[2 * l] ? (t.heap[++t.heap_len] = d = l, t.depth[l] = 0) : a[2 * l + 1] = 0; for (; t.heap_len < 2;)h = t.heap[++t.heap_len] = d < 2 ? ++d : 0, a[2 * h] = 1, t.depth[h] = 0, t.opt_len--, n && (t.static_len -= i[2 * h + 1]); for (e.max_code = d, l = t.heap_len >> 1; l >= 1; l--)S(t, a, l); h = r; do { l = t.heap[1], t.heap[1] = t.heap[t.heap_len--], S(t, a, 1), o = t.heap[1], t.heap[--t.heap_max] = l, t.heap[--t.heap_max] = o, a[2 * h] = a[2 * l] + a[2 * o], t.depth[h] = (t.depth[l] >= t.depth[o] ? t.depth[l] : t.depth[o]) + 1, a[2 * l + 1] = a[2 * o + 1] = h, t.heap[1] = h++, S(t, a, 1) } while (t.heap_len >= 2); t.heap[--t.heap_max] = t.heap[1], ((t, e) => { const a = e.dyn_tree, i = e.max_code, n = e.stat_desc.static_tree, r = e.stat_desc.has_stree, l = e.stat_desc.extra_bits, o = e.stat_desc.extra_base, h = e.stat_desc.max_length; let d, _, f, c, u, w, b = 0; for (c = 0; c <= s; c++)t.bl_count[c] = 0; for (a[2 * t.heap[t.heap_max] + 1] = 0, d = t.heap_max + 1; d < 573; d++)_ = t.heap[d], c = a[2 * a[2 * _ + 1] + 1] + 1, c > h && (c = h, b++), a[2 * _ + 1] = c, _ > i || (t.bl_count[c]++, u = 0, _ >= o && (u = l[_ - o]), w = a[2 * _], t.opt_len += w * (c + u), r && (t.static_len += w * (n[2 * _ + 1] + u))); if (0 !== b) { do { for (c = h - 1; 0 === t.bl_count[c];)c--; t.bl_count[c]--, t.bl_count[c + 1] += 2, t.bl_count[h]--, b -= 2 } while (b > 0); for (c = h; 0 !== c; c--)for (_ = t.bl_count[c]; 0 !== _;)f = t.heap[--d], f > i || (a[2 * f + 1] !== c && (t.opt_len += (c - a[2 * f + 1]) * a[2 * f], a[2 * f + 1] = c), _--) } })(t, e), E(a, d, t.bl_count) }, T = (t, e, a) => { let i, n, s = -1, r = e[1], l = 0, o = 7, h = 4; for (0 === r && (o = 138, h = 3), e[2 * (a + 1) + 1] = 65535, i = 0; i <= a; i++)n = r, r = e[2 * (i + 1) + 1], ++l < o && n === r || (l < h ? t.bl_tree[2 * n] += l : 0 !== n ? (n !== s && t.bl_tree[2 * n]++, t.bl_tree[32]++) : l <= 10 ? t.bl_tree[34]++ : t.bl_tree[36]++, l = 0, s = n, 0 === r ? (o = 138, h = 3) : n === r ? (o = 6, h = 3) : (o = 7, h = 4)) }, I = (t, e, a) => { let i, n, s = -1, r = e[1], l = 0, o = 7, h = 4; for (0 === r && (o = 138, h = 3), i = 0; i <= a; i++)if (n = r, r = e[2 * (i + 1) + 1], !(++l < o && n === r)) { if (l < h) do { z(t, n, t.bl_tree) } while (0 != --l); else 0 !== n ? (n !== s && (z(t, n, t.bl_tree), l--), z(t, 16, t.bl_tree), x(t, l - 3, 2)) : l <= 10 ? (z(t, 17, t.bl_tree), x(t, l - 3, 3)) : (z(t, 18, t.bl_tree), x(t, l - 11, 7)); l = 0, s = n, 0 === r ? (o = 138, h = 3) : n === r ? (o = 6, h = 3) : (o = 7, h = 4) } }; let F = !1; const L = (t, e, a, i) => { x(t, 0 + (i ? 1 : 0), 3), ((t, e, a, i) => { Z(t), i && (y(t, a), y(t, ~a)), t.pending_buf.set(t.window.subarray(e, e + a), t.pending), t.pending += a })(t, e, a, !0) }; var N = { _tr_init: t => { F || ((() => { let t, e, a, h, k; const v = new Array(16); for (a = 0, h = 0; h < 28; h++)for (u[h] = a, t = 0; t < 1 << r[h]; t++)c[a++] = h; for (c[a - 1] = h, k = 0, h = 0; h < 16; h++)for (w[h] = k, t = 0; t < 1 << l[h]; t++)f[k++] = h; for (k >>= 7; h < n; h++)for (w[h] = k << 7, t = 0; t < 1 << l[h] - 7; t++)f[256 + k++] = h; for (e = 0; e <= s; e++)v[e] = 0; for (t = 0; t <= 143;)d[2 * t + 1] = 8, t++, v[8]++; for (; t <= 255;)d[2 * t + 1] = 9, t++, v[9]++; for (; t <= 279;)d[2 * t + 1] = 7, t++, v[7]++; for (; t <= 287;)d[2 * t + 1] = 8, t++, v[8]++; for (E(d, 287, v), t = 0; t < n; t++)_[2 * t + 1] = 5, _[2 * t] = A(t, 5); g = new b(d, r, 257, i, s), p = new b(_, l, 0, n, s), m = new b(new Array(0), o, 0, 19, 7) })(), F = !0), t.l_desc = new k(t.dyn_ltree, g), t.d_desc = new k(t.dyn_dtree, p), t.bl_desc = new k(t.bl_tree, m), t.bi_buf = 0, t.bi_valid = 0, R(t) }, _tr_stored_block: L, _tr_flush_block: (t, e, i, n) => { let s, r, l = 0; t.level > 0 ? (2 === t.strm.data_type && (t.strm.data_type = (t => { let e, i = 4093624447; for (e = 0; e <= 31; e++, i >>>= 1)if (1 & i && 0 !== t.dyn_ltree[2 * e]) return 0; if (0 !== t.dyn_ltree[18] || 0 !== t.dyn_ltree[20] || 0 !== t.dyn_ltree[26]) return 1; for (e = 32; e < a; e++)if (0 !== t.dyn_ltree[2 * e]) return 1; return 0 })(t)), O(t, t.l_desc), O(t, t.d_desc), l = (t => { let e; for (T(t, t.dyn_ltree, t.l_desc.max_code), T(t, t.dyn_dtree, t.d_desc.max_code), O(t, t.bl_desc), e = 18; e >= 3 && 0 === t.bl_tree[2 * h[e] + 1]; e--); return t.opt_len += 3 * (e + 1) + 5 + 5 + 4, e })(t), s = t.opt_len + 3 + 7 >>> 3, r = t.static_len + 3 + 7 >>> 3, r <= s && (s = r)) : s = r = i + 5, i + 4 <= s && -1 !== e ? L(t, e, i, n) : 4 === t.strategy || r === s ? (x(t, 2 + (n ? 1 : 0), 3), D(t, d, _)) : (x(t, 4 + (n ? 1 : 0), 3), ((t, e, a, i) => { let n; for (x(t, e - 257, 5), x(t, a - 1, 5), x(t, i - 4, 4), n = 0; n < i; n++)x(t, t.bl_tree[2 * h[n] + 1], 3); I(t, t.dyn_ltree, e - 1), I(t, t.dyn_dtree, a - 1) })(t, t.l_desc.max_code + 1, t.d_desc.max_code + 1, l + 1), D(t, t.dyn_ltree, t.dyn_dtree)), R(t), n && Z(t) }, _tr_tally: (t, e, i) => (t.pending_buf[t.d_buf + 2 * t.last_lit] = e >>> 8 & 255, t.pending_buf[t.d_buf + 2 * t.last_lit + 1] = 255 & e, t.pending_buf[t.l_buf + t.last_lit] = 255 & i, t.last_lit++, 0 === e ? t.dyn_ltree[2 * i]++ : (t.matches++, e--, t.dyn_ltree[2 * (c[i] + a + 1)]++, t.dyn_dtree[2 * v(e)]++), t.last_lit === t.lit_bufsize - 1), _tr_align: t => { x(t, 2, 3), z(t, 256, d), (t => { 16 === t.bi_valid ? (y(t, t.bi_buf), t.bi_buf = 0, t.bi_valid = 0) : t.bi_valid >= 8 && (t.pending_buf[t.pending++] = 255 & t.bi_buf, t.bi_buf >>= 8, t.bi_valid -= 8) })(t) } }; var B = (t, e, a, i) => { let n = 65535 & t | 0, s = t >>> 16 & 65535 | 0, r = 0; for (; 0 !== a;) { r = a > 2e3 ? 2e3 : a, a -= r; do { n = n + e[i++] | 0, s = s + n | 0 } while (--r); n %= 65521, s %= 65521 } return n | s << 16 | 0 }; const C = new Uint32Array((() => { let t, e = []; for (var a = 0; a < 256; a++) { t = a; for (var i = 0; i < 8; i++)t = 1 & t ? 3988292384 ^ t >>> 1 : t >>> 1; e[a] = t } return e })()); var M = (t, e, a, i) => { const n = C, s = i + a; t ^= -1; for (let a = i; a < s; a++)t = t >>> 8 ^ n[255 & (t ^ e[a])]; return -1 ^ t }, H = { 2: \"need dictionary\", 1: \"stream end\", 0: \"\", \"-1\": \"file error\", \"-2\": \"stream error\", \"-3\": \"data error\", \"-4\": \"insufficient memory\", \"-5\": \"buffer error\", \"-6\": \"incompatible version\" }, j = { Z_NO_FLUSH: 0, Z_PARTIAL_FLUSH: 1, Z_SYNC_FLUSH: 2, Z_FULL_FLUSH: 3, Z_FINISH: 4, Z_BLOCK: 5, Z_TREES: 6, Z_OK: 0, Z_STREAM_END: 1, Z_NEED_DICT: 2, Z_ERRNO: -1, Z_STREAM_ERROR: -2, Z_DATA_ERROR: -3, Z_MEM_ERROR: -4, Z_BUF_ERROR: -5, Z_NO_COMPRESSION: 0, Z_BEST_SPEED: 1, Z_BEST_COMPRESSION: 9, Z_DEFAULT_COMPRESSION: -1, Z_FILTERED: 1, Z_HUFFMAN_ONLY: 2, Z_RLE: 3, Z_FIXED: 4, Z_DEFAULT_STRATEGY: 0, Z_BINARY: 0, Z_TEXT: 1, Z_UNKNOWN: 2, Z_DEFLATED: 8 }; const { _tr_init: K, _tr_stored_block: P, _tr_flush_block: Y, _tr_tally: G, _tr_align: X } = N, { Z_NO_FLUSH: W, Z_PARTIAL_FLUSH: q, Z_FULL_FLUSH: J, Z_FINISH: Q, Z_BLOCK: V, Z_OK: $, Z_STREAM_END: tt, Z_STREAM_ERROR: et, Z_DATA_ERROR: at, Z_BUF_ERROR: it, Z_DEFAULT_COMPRESSION: nt, Z_FILTERED: st, Z_HUFFMAN_ONLY: rt, Z_RLE: lt, Z_FIXED: ot, Z_DEFAULT_STRATEGY: ht, Z_UNKNOWN: dt, Z_DEFLATED: _t } = j, ft = 258, ct = 262, ut = 103, wt = 113, bt = 666, gt = (t, e) => (t.msg = H[e], e), pt = t => (t << 1) - (t > 4 ? 9 : 0), mt = t => { let e = t.length; for (; --e >= 0;)t[e] = 0 }; let kt = (t, e, a) => (e << t.hash_shift ^ a) & t.hash_mask; const vt = t => { const e = t.state; let a = e.pending; a > t.avail_out && (a = t.avail_out), 0 !== a && (t.output.set(e.pending_buf.subarray(e.pending_out, e.pending_out + a), t.next_out), t.next_out += a, e.pending_out += a, t.total_out += a, t.avail_out -= a, e.pending -= a, 0 === e.pending && (e.pending_out = 0)) }, yt = (t, e) => { Y(t, t.block_start >= 0 ? t.block_start : -1, t.strstart - t.block_start, e), t.block_start = t.strstart, vt(t.strm) }, xt = (t, e) => { t.pending_buf[t.pending++] = e }, zt = (t, e) => { t.pending_buf[t.pending++] = e >>> 8 & 255, t.pending_buf[t.pending++] = 255 & e }, At = (t, e, a, i) => { let n = t.avail_in; return n > i && (n = i), 0 === n ? 0 : (t.avail_in -= n, e.set(t.input.subarray(t.next_in, t.next_in + n), a), 1 === t.state.wrap ? t.adler = B(t.adler, e, n, a) : 2 === t.state.wrap && (t.adler = M(t.adler, e, n, a)), t.next_in += n, t.total_in += n, n) }, Et = (t, e) => { let a, i, n = t.max_chain_length, s = t.strstart, r = t.prev_length, l = t.nice_match; const o = t.strstart > t.w_size - ct ? t.strstart - (t.w_size - ct) : 0, h = t.window, d = t.w_mask, _ = t.prev, f = t.strstart + ft; let c = h[s + r - 1], u = h[s + r]; t.prev_length >= t.good_match && (n >>= 2), l > t.lookahead && (l = t.lookahead); do { if (a = e, h[a + r] === u && h[a + r - 1] === c && h[a] === h[s] && h[++a] === h[s + 1]) { s += 2, a++; do { } while (h[++s] === h[++a] && h[++s] === h[++a] && h[++s] === h[++a] && h[++s] === h[++a] && h[++s] === h[++a] && h[++s] === h[++a] && h[++s] === h[++a] && h[++s] === h[++a] && s < f); if (i = ft - (f - s), s = f - ft, i > r) { if (t.match_start = e, r = i, i >= l) break; c = h[s + r - 1], u = h[s + r] } } } while ((e = _[e & d]) > o && 0 != --n); return r <= t.lookahead ? r : t.lookahead }, Rt = t => { const e = t.w_size; let a, i, n, s, r; do { if (s = t.window_size - t.lookahead - t.strstart, t.strstart >= e + (e - ct)) { t.window.set(t.window.subarray(e, e + e), 0), t.match_start -= e, t.strstart -= e, t.block_start -= e, i = t.hash_size, a = i; do { n = t.head[--a], t.head[a] = n >= e ? n - e : 0 } while (--i); i = e, a = i; do { n = t.prev[--a], t.prev[a] = n >= e ? n - e : 0 } while (--i); s += e } if (0 === t.strm.avail_in) break; if (i = At(t.strm, t.window, t.strstart + t.lookahead, s), t.lookahead += i, t.lookahead + t.insert >= 3) for (r = t.strstart - t.insert, t.ins_h = t.window[r], t.ins_h = kt(t, t.ins_h, t.window[r + 1]); t.insert && (t.ins_h = kt(t, t.ins_h, t.window[r + 3 - 1]), t.prev[r & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = r, r++, t.insert--, !(t.lookahead + t.insert < 3));); } while (t.lookahead < ct && 0 !== t.strm.avail_in) }, Zt = (t, e) => { let a, i; for (; ;) { if (t.lookahead < ct) { if (Rt(t), t.lookahead < ct && e === W) return 1; if (0 === t.lookahead) break } if (a = 0, t.lookahead >= 3 && (t.ins_h = kt(t, t.ins_h, t.window[t.strstart + 3 - 1]), a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart), 0 !== a && t.strstart - a <= t.w_size - ct && (t.match_length = Et(t, a)), t.match_length >= 3) if (i = G(t, t.strstart - t.match_start, t.match_length - 3), t.lookahead -= t.match_length, t.match_length <= t.max_lazy_match && t.lookahead >= 3) { t.match_length--; do { t.strstart++, t.ins_h = kt(t, t.ins_h, t.window[t.strstart + 3 - 1]), a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart } while (0 != --t.match_length); t.strstart++ } else t.strstart += t.match_length, t.match_length = 0, t.ins_h = t.window[t.strstart], t.ins_h = kt(t, t.ins_h, t.window[t.strstart + 1]); else i = G(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++; if (i && (yt(t, !1), 0 === t.strm.avail_out)) return 1 } return t.insert = t.strstart < 2 ? t.strstart : 2, e === Q ? (yt(t, !0), 0 === t.strm.avail_out ? 3 : 4) : t.last_lit && (yt(t, !1), 0 === t.strm.avail_out) ? 1 : 2 }, Ut = (t, e) => { let a, i, n; for (; ;) { if (t.lookahead < ct) { if (Rt(t), t.lookahead < ct && e === W) return 1; if (0 === t.lookahead) break } if (a = 0, t.lookahead >= 3 && (t.ins_h = kt(t, t.ins_h, t.window[t.strstart + 3 - 1]), a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart), t.prev_length = t.match_length, t.prev_match = t.match_start, t.match_length = 2, 0 !== a && t.prev_length < t.max_lazy_match && t.strstart - a <= t.w_size - ct && (t.match_length = Et(t, a), t.match_length <= 5 && (t.strategy === st || 3 === t.match_length && t.strstart - t.match_start > 4096) && (t.match_length = 2)), t.prev_length >= 3 && t.match_length <= t.prev_length) { n = t.strstart + t.lookahead - 3, i = G(t, t.strstart - 1 - t.prev_match, t.prev_length - 3), t.lookahead -= t.prev_length - 1, t.prev_length -= 2; do { ++t.strstart <= n && (t.ins_h = kt(t, t.ins_h, t.window[t.strstart + 3 - 1]), a = t.prev[t.strstart & t.w_mask] = t.head[t.ins_h], t.head[t.ins_h] = t.strstart) } while (0 != --t.prev_length); if (t.match_available = 0, t.match_length = 2, t.strstart++, i && (yt(t, !1), 0 === t.strm.avail_out)) return 1 } else if (t.match_available) { if (i = G(t, 0, t.window[t.strstart - 1]), i && yt(t, !1), t.strstart++, t.lookahead--, 0 === t.strm.avail_out) return 1 } else t.match_available = 1, t.strstart++, t.lookahead-- } return t.match_available && (i = G(t, 0, t.window[t.strstart - 1]), t.match_available = 0), t.insert = t.strstart < 2 ? t.strstart : 2, e === Q ? (yt(t, !0), 0 === t.strm.avail_out ? 3 : 4) : t.last_lit && (yt(t, !1), 0 === t.strm.avail_out) ? 1 : 2 }; function St(t, e, a, i, n) { this.good_length = t, this.max_lazy = e, this.nice_length = a, this.max_chain = i, this.func = n } const Dt = [new St(0, 0, 0, 0, ((t, e) => { let a = 65535; for (a > t.pending_buf_size - 5 && (a = t.pending_buf_size - 5); ;) { if (t.lookahead <= 1) { if (Rt(t), 0 === t.lookahead && e === W) return 1; if (0 === t.lookahead) break } t.strstart += t.lookahead, t.lookahead = 0; const i = t.block_start + a; if ((0 === t.strstart || t.strstart >= i) && (t.lookahead = t.strstart - i, t.strstart = i, yt(t, !1), 0 === t.strm.avail_out)) return 1; if (t.strstart - t.block_start >= t.w_size - ct && (yt(t, !1), 0 === t.strm.avail_out)) return 1 } return t.insert = 0, e === Q ? (yt(t, !0), 0 === t.strm.avail_out ? 3 : 4) : (t.strstart > t.block_start && (yt(t, !1), t.strm.avail_out), 1) })), new St(4, 4, 8, 4, Zt), new St(4, 5, 16, 8, Zt), new St(4, 6, 32, 32, Zt), new St(4, 4, 16, 16, Ut), new St(8, 16, 32, 32, Ut), new St(8, 16, 128, 128, Ut), new St(8, 32, 128, 256, Ut), new St(32, 128, 258, 1024, Ut), new St(32, 258, 258, 4096, Ut)]; function Ot() { this.strm = null, this.status = 0, this.pending_buf = null, this.pending_buf_size = 0, this.pending_out = 0, this.pending = 0, this.wrap = 0, this.gzhead = null, this.gzindex = 0, this.method = _t, this.last_flush = -1, this.w_size = 0, this.w_bits = 0, this.w_mask = 0, this.window = null, this.window_size = 0, this.prev = null, this.head = null, this.ins_h = 0, this.hash_size = 0, this.hash_bits = 0, this.hash_mask = 0, this.hash_shift = 0, this.block_start = 0, this.match_length = 0, this.prev_match = 0, this.match_available = 0, this.strstart = 0, this.match_start = 0, this.lookahead = 0, this.prev_length = 0, this.max_chain_length = 0, this.max_lazy_match = 0, this.level = 0, this.strategy = 0, this.good_match = 0, this.nice_match = 0, this.dyn_ltree = new Uint16Array(1146), this.dyn_dtree = new Uint16Array(122), this.bl_tree = new Uint16Array(78), mt(this.dyn_ltree), mt(this.dyn_dtree), mt(this.bl_tree), this.l_desc = null, this.d_desc = null, this.bl_desc = null, this.bl_count = new Uint16Array(16), this.heap = new Uint16Array(573), mt(this.heap), this.heap_len = 0, this.heap_max = 0, this.depth = new Uint16Array(573), mt(this.depth), this.l_buf = 0, this.lit_bufsize = 0, this.last_lit = 0, this.d_buf = 0, this.opt_len = 0, this.static_len = 0, this.matches = 0, this.insert = 0, this.bi_buf = 0, this.bi_valid = 0 } const Tt = t => { if (!t || !t.state) return gt(t, et); t.total_in = t.total_out = 0, t.data_type = dt; const e = t.state; return e.pending = 0, e.pending_out = 0, e.wrap < 0 && (e.wrap = -e.wrap), e.status = e.wrap ? 42 : wt, t.adler = 2 === e.wrap ? 0 : 1, e.last_flush = W, K(e), $ }, It = t => { const e = Tt(t); var a; return e === $ && ((a = t.state).window_size = 2 * a.w_size, mt(a.head), a.max_lazy_match = Dt[a.level].max_lazy, a.good_match = Dt[a.level].good_length, a.nice_match = Dt[a.level].nice_length, a.max_chain_length = Dt[a.level].max_chain, a.strstart = 0, a.block_start = 0, a.lookahead = 0, a.insert = 0, a.match_length = a.prev_length = 2, a.match_available = 0, a.ins_h = 0), e }, Ft = (t, e, a, i, n, s) => { if (!t) return et; let r = 1; if (e === nt && (e = 6), i < 0 ? (r = 0, i = -i) : i > 15 && (r = 2, i -= 16), n < 1 || n > 9 || a !== _t || i < 8 || i > 15 || e < 0 || e > 9 || s < 0 || s > ot) return gt(t, et); 8 === i && (i = 9); const l = new Ot; return t.state = l, l.strm = t, l.wrap = r, l.gzhead = null, l.w_bits = i, l.w_size = 1 << l.w_bits, l.w_mask = l.w_size - 1, l.hash_bits = n + 7, l.hash_size = 1 << l.hash_bits, l.hash_mask = l.hash_size - 1, l.hash_shift = ~~((l.hash_bits + 3 - 1) / 3), l.window = new Uint8Array(2 * l.w_size), l.head = new Uint16Array(l.hash_size), l.prev = new Uint16Array(l.w_size), l.lit_bufsize = 1 << n + 6, l.pending_buf_size = 4 * l.lit_bufsize, l.pending_buf = new Uint8Array(l.pending_buf_size), l.d_buf = 1 * l.lit_bufsize, l.l_buf = 3 * l.lit_bufsize, l.level = e, l.strategy = s, l.method = a, It(t) }; var Lt = { deflateInit: (t, e) => Ft(t, e, _t, 15, 8, ht), deflateInit2: Ft, deflateReset: It, deflateResetKeep: Tt, deflateSetHeader: (t, e) => t && t.state ? 2 !== t.state.wrap ? et : (t.state.gzhead = e, $) : et, deflate: (t, e) => { let a, i; if (!t || !t.state || e > V || e < 0) return t ? gt(t, et) : et; const n = t.state; if (!t.output || !t.input && 0 !== t.avail_in || n.status === bt && e !== Q) return gt(t, 0 === t.avail_out ? it : et); n.strm = t; const s = n.last_flush; if (n.last_flush = e, 42 === n.status) if (2 === n.wrap) t.adler = 0, xt(n, 31), xt(n, 139), xt(n, 8), n.gzhead ? (xt(n, (n.gzhead.text ? 1 : 0) + (n.gzhead.hcrc ? 2 : 0) + (n.gzhead.extra ? 4 : 0) + (n.gzhead.name ? 8 : 0) + (n.gzhead.comment ? 16 : 0)), xt(n, 255 & n.gzhead.time), xt(n, n.gzhead.time >> 8 & 255), xt(n, n.gzhead.time >> 16 & 255), xt(n, n.gzhead.time >> 24 & 255), xt(n, 9 === n.level ? 2 : n.strategy >= rt || n.level < 2 ? 4 : 0), xt(n, 255 & n.gzhead.os), n.gzhead.extra && n.gzhead.extra.length && (xt(n, 255 & n.gzhead.extra.length), xt(n, n.gzhead.extra.length >> 8 & 255)), n.gzhead.hcrc && (t.adler = M(t.adler, n.pending_buf, n.pending, 0)), n.gzindex = 0, n.status = 69) : (xt(n, 0), xt(n, 0), xt(n, 0), xt(n, 0), xt(n, 0), xt(n, 9 === n.level ? 2 : n.strategy >= rt || n.level < 2 ? 4 : 0), xt(n, 3), n.status = wt); else { let e = _t + (n.w_bits - 8 << 4) << 8, a = -1; a = n.strategy >= rt || n.level < 2 ? 0 : n.level < 6 ? 1 : 6 === n.level ? 2 : 3, e |= a << 6, 0 !== n.strstart && (e |= 32), e += 31 - e % 31, n.status = wt, zt(n, e), 0 !== n.strstart && (zt(n, t.adler >>> 16), zt(n, 65535 & t.adler)), t.adler = 1 } if (69 === n.status) if (n.gzhead.extra) { for (a = n.pending; n.gzindex < (65535 & n.gzhead.extra.length) && (n.pending !== n.pending_buf_size || (n.gzhead.hcrc && n.pending > a && (t.adler = M(t.adler, n.pending_buf, n.pending - a, a)), vt(t), a = n.pending, n.pending !== n.pending_buf_size));)xt(n, 255 & n.gzhead.extra[n.gzindex]), n.gzindex++; n.gzhead.hcrc && n.pending > a && (t.adler = M(t.adler, n.pending_buf, n.pending - a, a)), n.gzindex === n.gzhead.extra.length && (n.gzindex = 0, n.status = 73) } else n.status = 73; if (73 === n.status) if (n.gzhead.name) { a = n.pending; do { if (n.pending === n.pending_buf_size && (n.gzhead.hcrc && n.pending > a && (t.adler = M(t.adler, n.pending_buf, n.pending - a, a)), vt(t), a = n.pending, n.pending === n.pending_buf_size)) { i = 1; break } i = n.gzindex < n.gzhead.name.length ? 255 & n.gzhead.name.charCodeAt(n.gzindex++) : 0, xt(n, i) } while (0 !== i); n.gzhead.hcrc && n.pending > a && (t.adler = M(t.adler, n.pending_buf, n.pending - a, a)), 0 === i && (n.gzindex = 0, n.status = 91) } else n.status = 91; if (91 === n.status) if (n.gzhead.comment) { a = n.pending; do { if (n.pending === n.pending_buf_size && (n.gzhead.hcrc && n.pending > a && (t.adler = M(t.adler, n.pending_buf, n.pending - a, a)), vt(t), a = n.pending, n.pending === n.pending_buf_size)) { i = 1; break } i = n.gzindex < n.gzhead.comment.length ? 255 & n.gzhead.comment.charCodeAt(n.gzindex++) : 0, xt(n, i) } while (0 !== i); n.gzhead.hcrc && n.pending > a && (t.adler = M(t.adler, n.pending_buf, n.pending - a, a)), 0 === i && (n.status = ut) } else n.status = ut; if (n.status === ut && (n.gzhead.hcrc ? (n.pending + 2 > n.pending_buf_size && vt(t), n.pending + 2 <= n.pending_buf_size && (xt(n, 255 & t.adler), xt(n, t.adler >> 8 & 255), t.adler = 0, n.status = wt)) : n.status = wt), 0 !== n.pending) { if (vt(t), 0 === t.avail_out) return n.last_flush = -1, $ } else if (0 === t.avail_in && pt(e) <= pt(s) && e !== Q) return gt(t, it); if (n.status === bt && 0 !== t.avail_in) return gt(t, it); if (0 !== t.avail_in || 0 !== n.lookahead || e !== W && n.status !== bt) { let a = n.strategy === rt ? ((t, e) => { let a; for (; ;) { if (0 === t.lookahead && (Rt(t), 0 === t.lookahead)) { if (e === W) return 1; break } if (t.match_length = 0, a = G(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++, a && (yt(t, !1), 0 === t.strm.avail_out)) return 1 } return t.insert = 0, e === Q ? (yt(t, !0), 0 === t.strm.avail_out ? 3 : 4) : t.last_lit && (yt(t, !1), 0 === t.strm.avail_out) ? 1 : 2 })(n, e) : n.strategy === lt ? ((t, e) => { let a, i, n, s; const r = t.window; for (; ;) { if (t.lookahead <= ft) { if (Rt(t), t.lookahead <= ft && e === W) return 1; if (0 === t.lookahead) break } if (t.match_length = 0, t.lookahead >= 3 && t.strstart > 0 && (n = t.strstart - 1, i = r[n], i === r[++n] && i === r[++n] && i === r[++n])) { s = t.strstart + ft; do { } while (i === r[++n] && i === r[++n] && i === r[++n] && i === r[++n] && i === r[++n] && i === r[++n] && i === r[++n] && i === r[++n] && n < s); t.match_length = ft - (s - n), t.match_length > t.lookahead && (t.match_length = t.lookahead) } if (t.match_length >= 3 ? (a = G(t, 1, t.match_length - 3), t.lookahead -= t.match_length, t.strstart += t.match_length, t.match_length = 0) : (a = G(t, 0, t.window[t.strstart]), t.lookahead--, t.strstart++), a && (yt(t, !1), 0 === t.strm.avail_out)) return 1 } return t.insert = 0, e === Q ? (yt(t, !0), 0 === t.strm.avail_out ? 3 : 4) : t.last_lit && (yt(t, !1), 0 === t.strm.avail_out) ? 1 : 2 })(n, e) : Dt[n.level].func(n, e); if (3 !== a && 4 !== a || (n.status = bt), 1 === a || 3 === a) return 0 === t.avail_out && (n.last_flush = -1), $; if (2 === a && (e === q ? X(n) : e !== V && (P(n, 0, 0, !1), e === J && (mt(n.head), 0 === n.lookahead && (n.strstart = 0, n.block_start = 0, n.insert = 0))), vt(t), 0 === t.avail_out)) return n.last_flush = -1, $ } return e !== Q ? $ : n.wrap <= 0 ? tt : (2 === n.wrap ? (xt(n, 255 & t.adler), xt(n, t.adler >> 8 & 255), xt(n, t.adler >> 16 & 255), xt(n, t.adler >> 24 & 255), xt(n, 255 & t.total_in), xt(n, t.total_in >> 8 & 255), xt(n, t.total_in >> 16 & 255), xt(n, t.total_in >> 24 & 255)) : (zt(n, t.adler >>> 16), zt(n, 65535 & t.adler)), vt(t), n.wrap > 0 && (n.wrap = -n.wrap), 0 !== n.pending ? $ : tt) }, deflateEnd: t => { if (!t || !t.state) return et; const e = t.state.status; return 42 !== e && 69 !== e && 73 !== e && 91 !== e && e !== ut && e !== wt && e !== bt ? gt(t, et) : (t.state = null, e === wt ? gt(t, at) : $) }, deflateSetDictionary: (t, e) => { let a = e.length; if (!t || !t.state) return et; const i = t.state, n = i.wrap; if (2 === n || 1 === n && 42 !== i.status || i.lookahead) return et; if (1 === n && (t.adler = B(t.adler, e, a, 0)), i.wrap = 0, a >= i.w_size) { 0 === n && (mt(i.head), i.strstart = 0, i.block_start = 0, i.insert = 0); let t = new Uint8Array(i.w_size); t.set(e.subarray(a - i.w_size, a), 0), e = t, a = i.w_size } const s = t.avail_in, r = t.next_in, l = t.input; for (t.avail_in = a, t.next_in = 0, t.input = e, Rt(i); i.lookahead >= 3;) { let t = i.strstart, e = i.lookahead - 2; do { i.ins_h = kt(i, i.ins_h, i.window[t + 3 - 1]), i.prev[t & i.w_mask] = i.head[i.ins_h], i.head[i.ins_h] = t, t++ } while (--e); i.strstart = t, i.lookahead = 2, Rt(i) } return i.strstart += i.lookahead, i.block_start = i.strstart, i.insert = i.lookahead, i.lookahead = 0, i.match_length = i.prev_length = 2, i.match_available = 0, t.next_in = r, t.input = l, t.avail_in = s, i.wrap = n, $ }, deflateInfo: \"pako deflate (from Nodeca project)\" }; const Nt = (t, e) => Object.prototype.hasOwnProperty.call(t, e); var Bt = function (t) { const e = Array.prototype.slice.call(arguments, 1); for (; e.length;) { const a = e.shift(); if (a) { if (\"object\" != typeof a) throw new TypeError(a + \"must be non-object\"); for (const e in a) Nt(a, e) && (t[e] = a[e]) } } return t }, Ct = t => { let e = 0; for (let a = 0, i = t.length; a < i; a++)e += t[a].length; const a = new Uint8Array(e); for (let e = 0, i = 0, n = t.length; e < n; e++) { let n = t[e]; a.set(n, i), i += n.length } return a }; let Mt = !0; try { String.fromCharCode.apply(null, new Uint8Array(1)) } catch (t) { Mt = !1 } const Ht = new Uint8Array(256); for (let t = 0; t < 256; t++)Ht[t] = t >= 252 ? 6 : t >= 248 ? 5 : t >= 240 ? 4 : t >= 224 ? 3 : t >= 192 ? 2 : 1; Ht[254] = Ht[254] = 1; var jt = t => { let e, a, i, n, s, r = t.length, l = 0; for (n = 0; n < r; n++)a = t.charCodeAt(n), 55296 == (64512 & a) && n + 1 < r && (i = t.charCodeAt(n + 1), 56320 == (64512 & i) && (a = 65536 + (a - 55296 << 10) + (i - 56320), n++)), l += a < 128 ? 1 : a < 2048 ? 2 : a < 65536 ? 3 : 4; for (e = new Uint8Array(l), s = 0, n = 0; s < l; n++)a = t.charCodeAt(n), 55296 == (64512 & a) && n + 1 < r && (i = t.charCodeAt(n + 1), 56320 == (64512 & i) && (a = 65536 + (a - 55296 << 10) + (i - 56320), n++)), a < 128 ? e[s++] = a : a < 2048 ? (e[s++] = 192 | a >>> 6, e[s++] = 128 | 63 & a) : a < 65536 ? (e[s++] = 224 | a >>> 12, e[s++] = 128 | a >>> 6 & 63, e[s++] = 128 | 63 & a) : (e[s++] = 240 | a >>> 18, e[s++] = 128 | a >>> 12 & 63, e[s++] = 128 | a >>> 6 & 63, e[s++] = 128 | 63 & a); return e }, Kt = (t, e) => { let a, i; const n = e || t.length, s = new Array(2 * n); for (i = 0, a = 0; a < n;) { let e = t[a++]; if (e < 128) { s[i++] = e; continue } let r = Ht[e]; if (r > 4) s[i++] = 65533, a += r - 1; else { for (e &= 2 === r ? 31 : 3 === r ? 15 : 7; r > 1 && a < n;)e = e << 6 | 63 & t[a++], r--; r > 1 ? s[i++] = 65533 : e < 65536 ? s[i++] = e : (e -= 65536, s[i++] = 55296 | e >> 10 & 1023, s[i++] = 56320 | 1023 & e) } } return ((t, e) => { if (e < 65534 && t.subarray && Mt) return String.fromCharCode.apply(null, t.length === e ? t : t.subarray(0, e)); let a = \"\"; for (let i = 0; i < e; i++)a += String.fromCharCode(t[i]); return a })(s, i) }, Pt = (t, e) => { (e = e || t.length) > t.length && (e = t.length); let a = e - 1; for (; a >= 0 && 128 == (192 & t[a]);)a--; return a < 0 || 0 === a ? e : a + Ht[t[a]] > e ? a : e }; var Yt = function () { this.input = null, this.next_in = 0, this.avail_in = 0, this.total_in = 0, this.output = null, this.next_out = 0, this.avail_out = 0, this.total_out = 0, this.msg = \"\", this.state = null, this.data_type = 2, this.adler = 0 }; const Gt = Object.prototype.toString, { Z_NO_FLUSH: Xt, Z_SYNC_FLUSH: Wt, Z_FULL_FLUSH: qt, Z_FINISH: Jt, Z_OK: Qt, Z_STREAM_END: Vt, Z_DEFAULT_COMPRESSION: $t, Z_DEFAULT_STRATEGY: te, Z_DEFLATED: ee } = j; function ae(t) { this.options = Bt({ level: $t, method: ee, chunkSize: 16384, windowBits: 15, memLevel: 8, strategy: te }, t || {}); let e = this.options; e.raw && e.windowBits > 0 ? e.windowBits = -e.windowBits : e.gzip && e.windowBits > 0 && e.windowBits < 16 && (e.windowBits += 16), this.err = 0, this.msg = \"\", this.ended = !1, this.chunks = [], this.strm = new Yt, this.strm.avail_out = 0; let a = Lt.deflateInit2(this.strm, e.level, e.method, e.windowBits, e.memLevel, e.strategy); if (a !== Qt) throw new Error(H[a]); if (e.header && Lt.deflateSetHeader(this.strm, e.header), e.dictionary) { let t; if (t = \"string\" == typeof e.dictionary ? jt(e.dictionary) : \"[object ArrayBuffer]\" === Gt.call(e.dictionary) ? new Uint8Array(e.dictionary) : e.dictionary, a = Lt.deflateSetDictionary(this.strm, t), a !== Qt) throw new Error(H[a]); this._dict_set = !0 } } function ie(t, e) { const a = new ae(e); if (a.push(t, !0), a.err) throw a.msg || H[a.err]; return a.result } ae.prototype.push = function (t, e) { const a = this.strm, i = this.options.chunkSize; let n, s; if (this.ended) return !1; for (s = e === ~~e ? e : !0 === e ? Jt : Xt, \"string\" == typeof t ? a.input = jt(t) : \"[object ArrayBuffer]\" === Gt.call(t) ? a.input = new Uint8Array(t) : a.input = t, a.next_in = 0, a.avail_in = a.input.length; ;)if (0 === a.avail_out && (a.output = new Uint8Array(i), a.next_out = 0, a.avail_out = i), (s === Wt || s === qt) && a.avail_out <= 6) this.onData(a.output.subarray(0, a.next_out)), a.avail_out = 0; else { if (n = Lt.deflate(a, s), n === Vt) return a.next_out > 0 && this.onData(a.output.subarray(0, a.next_out)), n = Lt.deflateEnd(this.strm), this.onEnd(n), this.ended = !0, n === Qt; if (0 !== a.avail_out) { if (s > 0 && a.next_out > 0) this.onData(a.output.subarray(0, a.next_out)), a.avail_out = 0; else if (0 === a.avail_in) break } else this.onData(a.output) } return !0 }, ae.prototype.onData = function (t) { this.chunks.push(t) }, ae.prototype.onEnd = function (t) { t === Qt && (this.result = Ct(this.chunks)), this.chunks = [], this.err = t, this.msg = this.strm.msg }; var ne = { Deflate: ae, deflate: ie, deflateRaw: function (t, e) { return (e = e || {}).raw = !0, ie(t, e) }, gzip: function (t, e) { return (e = e || {}).gzip = !0, ie(t, e) }, constants: j }; var se = function (t, e) { let a, i, n, s, r, l, o, h, d, _, f, c, u, w, b, g, p, m, k, v, y, x, z, A; const E = t.state; a = t.next_in, z = t.input, i = a + (t.avail_in - 5), n = t.next_out, A = t.output, s = n - (e - t.avail_out), r = n + (t.avail_out - 257), l = E.dmax, o = E.wsize, h = E.whave, d = E.wnext, _ = E.window, f = E.hold, c = E.bits, u = E.lencode, w = E.distcode, b = (1 << E.lenbits) - 1, g = (1 << E.distbits) - 1; t: do { c < 15 && (f += z[a++] << c, c += 8, f += z[a++] << c, c += 8), p = u[f & b]; e: for (; ;) { if (m = p >>> 24, f >>>= m, c -= m, m = p >>> 16 & 255, 0 === m) A[n++] = 65535 & p; else { if (!(16 & m)) { if (0 == (64 & m)) { p = u[(65535 & p) + (f & (1 << m) - 1)]; continue e } if (32 & m) { E.mode = 12; break t } t.msg = \"invalid literal/length code\", E.mode = 30; break t } k = 65535 & p, m &= 15, m && (c < m && (f += z[a++] << c, c += 8), k += f & (1 << m) - 1, f >>>= m, c -= m), c < 15 && (f += z[a++] << c, c += 8, f += z[a++] << c, c += 8), p = w[f & g]; a: for (; ;) { if (m = p >>> 24, f >>>= m, c -= m, m = p >>> 16 & 255, !(16 & m)) { if (0 == (64 & m)) { p = w[(65535 & p) + (f & (1 << m) - 1)]; continue a } t.msg = \"invalid distance code\", E.mode = 30; break t } if (v = 65535 & p, m &= 15, c < m && (f += z[a++] << c, c += 8, c < m && (f += z[a++] << c, c += 8)), v += f & (1 << m) - 1, v > l) { t.msg = \"invalid distance too far back\", E.mode = 30; break t } if (f >>>= m, c -= m, m = n - s, v > m) { if (m = v - m, m > h && E.sane) { t.msg = \"invalid distance too far back\", E.mode = 30; break t } if (y = 0, x = _, 0 === d) { if (y += o - m, m < k) { k -= m; do { A[n++] = _[y++] } while (--m); y = n - v, x = A } } else if (d < m) { if (y += o + d - m, m -= d, m < k) { k -= m; do { A[n++] = _[y++] } while (--m); if (y = 0, d < k) { m = d, k -= m; do { A[n++] = _[y++] } while (--m); y = n - v, x = A } } } else if (y += d - m, m < k) { k -= m; do { A[n++] = _[y++] } while (--m); y = n - v, x = A } for (; k > 2;)A[n++] = x[y++], A[n++] = x[y++], A[n++] = x[y++], k -= 3; k && (A[n++] = x[y++], k > 1 && (A[n++] = x[y++])) } else { y = n - v; do { A[n++] = A[y++], A[n++] = A[y++], A[n++] = A[y++], k -= 3 } while (k > 2); k && (A[n++] = A[y++], k > 1 && (A[n++] = A[y++])) } break } } break } } while (a < i && n < r); k = c >> 3, a -= k, c -= k << 3, f &= (1 << c) - 1, t.next_in = a, t.next_out = n, t.avail_in = a < i ? i - a + 5 : 5 - (a - i), t.avail_out = n < r ? r - n + 257 : 257 - (n - r), E.hold = f, E.bits = c }; const re = 15, le = new Uint16Array([3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0]), oe = new Uint8Array([16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78]), he = new Uint16Array([1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0]), de = new Uint8Array([16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64]); var _e = (t, e, a, i, n, s, r, l) => { const o = l.bits; let h, d, _, f, c, u, w = 0, b = 0, g = 0, p = 0, m = 0, k = 0, v = 0, y = 0, x = 0, z = 0, A = null, E = 0; const R = new Uint16Array(16), Z = new Uint16Array(16); let U, S, D, O = null, T = 0; for (w = 0; w <= re; w++)R[w] = 0; for (b = 0; b < i; b++)R[e[a + b]]++; for (m = o, p = re; p >= 1 && 0 === R[p]; p--); if (m > p && (m = p), 0 === p) return n[s++] = 20971520, n[s++] = 20971520, l.bits = 1, 0; for (g = 1; g < p && 0 === R[g]; g++); for (m < g && (m = g), y = 1, w = 1; w <= re; w++)if (y <<= 1, y -= R[w], y < 0) return -1; if (y > 0 && (0 === t || 1 !== p)) return -1; for (Z[1] = 0, w = 1; w < re; w++)Z[w + 1] = Z[w] + R[w]; for (b = 0; b < i; b++)0 !== e[a + b] && (r[Z[e[a + b]]++] = b); if (0 === t ? (A = O = r, u = 19) : 1 === t ? (A = le, E -= 257, O = oe, T -= 257, u = 256) : (A = he, O = de, u = -1), z = 0, b = 0, w = g, c = s, k = m, v = 0, _ = -1, x = 1 << m, f = x - 1, 1 === t && x > 852 || 2 === t && x > 592) return 1; for (; ;) { U = w - v, r[b] < u ? (S = 0, D = r[b]) : r[b] > u ? (S = O[T + r[b]], D = A[E + r[b]]) : (S = 96, D = 0), h = 1 << w - v, d = 1 << k, g = d; do { d -= h, n[c + (z >> v) + d] = U << 24 | S << 16 | D | 0 } while (0 !== d); for (h = 1 << w - 1; z & h;)h >>= 1; if (0 !== h ? (z &= h - 1, z += h) : z = 0, b++, 0 == --R[w]) { if (w === p) break; w = e[a + r[b]] } if (w > m && (z & f) !== _) { for (0 === v && (v = m), c += g, k = w - v, y = 1 << k; k + v < p && (y -= R[k + v], !(y <= 0));)k++, y <<= 1; if (x += 1 << k, 1 === t && x > 852 || 2 === t && x > 592) return 1; _ = z & f, n[_] = m << 24 | k << 16 | c - s | 0 } } return 0 !== z && (n[c + z] = w - v << 24 | 64 << 16 | 0), l.bits = m, 0 }; const { Z_FINISH: fe, Z_BLOCK: ce, Z_TREES: ue, Z_OK: we, Z_STREAM_END: be, Z_NEED_DICT: ge, Z_STREAM_ERROR: pe, Z_DATA_ERROR: me, Z_MEM_ERROR: ke, Z_BUF_ERROR: ve, Z_DEFLATED: ye } = j, xe = 12, ze = 30, Ae = t => (t >>> 24 & 255) + (t >>> 8 & 65280) + ((65280 & t) << 8) + ((255 & t) << 24); function Ee() { this.mode = 0, this.last = !1, this.wrap = 0, this.havedict = !1, this.flags = 0, this.dmax = 0, this.check = 0, this.total = 0, this.head = null, this.wbits = 0, this.wsize = 0, this.whave = 0, this.wnext = 0, this.window = null, this.hold = 0, this.bits = 0, this.length = 0, this.offset = 0, this.extra = 0, this.lencode = null, this.distcode = null, this.lenbits = 0, this.distbits = 0, this.ncode = 0, this.nlen = 0, this.ndist = 0, this.have = 0, this.next = null, this.lens = new Uint16Array(320), this.work = new Uint16Array(288), this.lendyn = null, this.distdyn = null, this.sane = 0, this.back = 0, this.was = 0 } const Re = t => { if (!t || !t.state) return pe; const e = t.state; return t.total_in = t.total_out = e.total = 0, t.msg = \"\", e.wrap && (t.adler = 1 & e.wrap), e.mode = 1, e.last = 0, e.havedict = 0, e.dmax = 32768, e.head = null, e.hold = 0, e.bits = 0, e.lencode = e.lendyn = new Int32Array(852), e.distcode = e.distdyn = new Int32Array(592), e.sane = 1, e.back = -1, we }, Ze = t => { if (!t || !t.state) return pe; const e = t.state; return e.wsize = 0, e.whave = 0, e.wnext = 0, Re(t) }, Ue = (t, e) => { let a; if (!t || !t.state) return pe; const i = t.state; return e < 0 ? (a = 0, e = -e) : (a = 1 + (e >> 4), e < 48 && (e &= 15)), e && (e < 8 || e > 15) ? pe : (null !== i.window && i.wbits !== e && (i.window = null), i.wrap = a, i.wbits = e, Ze(t)) }, Se = (t, e) => { if (!t) return pe; const a = new Ee; t.state = a, a.window = null; const i = Ue(t, e); return i !== we && (t.state = null), i }; let De, Oe, Te = !0; const Ie = t => { if (Te) { De = new Int32Array(512), Oe = new Int32Array(32); let e = 0; for (; e < 144;)t.lens[e++] = 8; for (; e < 256;)t.lens[e++] = 9; for (; e < 280;)t.lens[e++] = 7; for (; e < 288;)t.lens[e++] = 8; for (_e(1, t.lens, 0, 288, De, 0, t.work, { bits: 9 }), e = 0; e < 32;)t.lens[e++] = 5; _e(2, t.lens, 0, 32, Oe, 0, t.work, { bits: 5 }), Te = !1 } t.lencode = De, t.lenbits = 9, t.distcode = Oe, t.distbits = 5 }, Fe = (t, e, a, i) => { let n; const s = t.state; return null === s.window && (s.wsize = 1 << s.wbits, s.wnext = 0, s.whave = 0, s.window = new Uint8Array(s.wsize)), i >= s.wsize ? (s.window.set(e.subarray(a - s.wsize, a), 0), s.wnext = 0, s.whave = s.wsize) : (n = s.wsize - s.wnext, n > i && (n = i), s.window.set(e.subarray(a - i, a - i + n), s.wnext), (i -= n) ? (s.window.set(e.subarray(a - i, a), 0), s.wnext = i, s.whave = s.wsize) : (s.wnext += n, s.wnext === s.wsize && (s.wnext = 0), s.whave < s.wsize && (s.whave += n))), 0 }; var Le = { inflateReset: Ze, inflateReset2: Ue, inflateResetKeep: Re, inflateInit: t => Se(t, 15), inflateInit2: Se, inflate: (t, e) => { let a, i, n, s, r, l, o, h, d, _, f, c, u, w, b, g, p, m, k, v, y, x, z = 0; const A = new Uint8Array(4); let E, R; const Z = new Uint8Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]); if (!t || !t.state || !t.output || !t.input && 0 !== t.avail_in) return pe; a = t.state, a.mode === xe && (a.mode = 13), r = t.next_out, n = t.output, o = t.avail_out, s = t.next_in, i = t.input, l = t.avail_in, h = a.hold, d = a.bits, _ = l, f = o, x = we; t: for (; ;)switch (a.mode) { case 1: if (0 === a.wrap) { a.mode = 13; break } for (; d < 16;) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } if (2 & a.wrap && 35615 === h) { a.check = 0, A[0] = 255 & h, A[1] = h >>> 8 & 255, a.check = M(a.check, A, 2, 0), h = 0, d = 0, a.mode = 2; break } if (a.flags = 0, a.head && (a.head.done = !1), !(1 & a.wrap) || (((255 & h) << 8) + (h >> 8)) % 31) { t.msg = \"incorrect header check\", a.mode = ze; break } if ((15 & h) !== ye) { t.msg = \"unknown compression method\", a.mode = ze; break } if (h >>>= 4, d -= 4, y = 8 + (15 & h), 0 === a.wbits) a.wbits = y; else if (y > a.wbits) { t.msg = \"invalid window size\", a.mode = ze; break } a.dmax = 1 << a.wbits, t.adler = a.check = 1, a.mode = 512 & h ? 10 : xe, h = 0, d = 0; break; case 2: for (; d < 16;) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } if (a.flags = h, (255 & a.flags) !== ye) { t.msg = \"unknown compression method\", a.mode = ze; break } if (57344 & a.flags) { t.msg = \"unknown header flags set\", a.mode = ze; break } a.head && (a.head.text = h >> 8 & 1), 512 & a.flags && (A[0] = 255 & h, A[1] = h >>> 8 & 255, a.check = M(a.check, A, 2, 0)), h = 0, d = 0, a.mode = 3; case 3: for (; d < 32;) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } a.head && (a.head.time = h), 512 & a.flags && (A[0] = 255 & h, A[1] = h >>> 8 & 255, A[2] = h >>> 16 & 255, A[3] = h >>> 24 & 255, a.check = M(a.check, A, 4, 0)), h = 0, d = 0, a.mode = 4; case 4: for (; d < 16;) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } a.head && (a.head.xflags = 255 & h, a.head.os = h >> 8), 512 & a.flags && (A[0] = 255 & h, A[1] = h >>> 8 & 255, a.check = M(a.check, A, 2, 0)), h = 0, d = 0, a.mode = 5; case 5: if (1024 & a.flags) { for (; d < 16;) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } a.length = h, a.head && (a.head.extra_len = h), 512 & a.flags && (A[0] = 255 & h, A[1] = h >>> 8 & 255, a.check = M(a.check, A, 2, 0)), h = 0, d = 0 } else a.head && (a.head.extra = null); a.mode = 6; case 6: if (1024 & a.flags && (c = a.length, c > l && (c = l), c && (a.head && (y = a.head.extra_len - a.length, a.head.extra || (a.head.extra = new Uint8Array(a.head.extra_len)), a.head.extra.set(i.subarray(s, s + c), y)), 512 & a.flags && (a.check = M(a.check, i, c, s)), l -= c, s += c, a.length -= c), a.length)) break t; a.length = 0, a.mode = 7; case 7: if (2048 & a.flags) { if (0 === l) break t; c = 0; do { y = i[s + c++], a.head && y && a.length < 65536 && (a.head.name += String.fromCharCode(y)) } while (y && c < l); if (512 & a.flags && (a.check = M(a.check, i, c, s)), l -= c, s += c, y) break t } else a.head && (a.head.name = null); a.length = 0, a.mode = 8; case 8: if (4096 & a.flags) { if (0 === l) break t; c = 0; do { y = i[s + c++], a.head && y && a.length < 65536 && (a.head.comment += String.fromCharCode(y)) } while (y && c < l); if (512 & a.flags && (a.check = M(a.check, i, c, s)), l -= c, s += c, y) break t } else a.head && (a.head.comment = null); a.mode = 9; case 9: if (512 & a.flags) { for (; d < 16;) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } if (h !== (65535 & a.check)) { t.msg = \"header crc mismatch\", a.mode = ze; break } h = 0, d = 0 } a.head && (a.head.hcrc = a.flags >> 9 & 1, a.head.done = !0), t.adler = a.check = 0, a.mode = xe; break; case 10: for (; d < 32;) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } t.adler = a.check = Ae(h), h = 0, d = 0, a.mode = 11; case 11: if (0 === a.havedict) return t.next_out = r, t.avail_out = o, t.next_in = s, t.avail_in = l, a.hold = h, a.bits = d, ge; t.adler = a.check = 1, a.mode = xe; case xe: if (e === ce || e === ue) break t; case 13: if (a.last) { h >>>= 7 & d, d -= 7 & d, a.mode = 27; break } for (; d < 3;) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } switch (a.last = 1 & h, h >>>= 1, d -= 1, 3 & h) { case 0: a.mode = 14; break; case 1: if (Ie(a), a.mode = 20, e === ue) { h >>>= 2, d -= 2; break t } break; case 2: a.mode = 17; break; case 3: t.msg = \"invalid block type\", a.mode = ze }h >>>= 2, d -= 2; break; case 14: for (h >>>= 7 & d, d -= 7 & d; d < 32;) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } if ((65535 & h) != (h >>> 16 ^ 65535)) { t.msg = \"invalid stored block lengths\", a.mode = ze; break } if (a.length = 65535 & h, h = 0, d = 0, a.mode = 15, e === ue) break t; case 15: a.mode = 16; case 16: if (c = a.length, c) { if (c > l && (c = l), c > o && (c = o), 0 === c) break t; n.set(i.subarray(s, s + c), r), l -= c, s += c, o -= c, r += c, a.length -= c; break } a.mode = xe; break; case 17: for (; d < 14;) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } if (a.nlen = 257 + (31 & h), h >>>= 5, d -= 5, a.ndist = 1 + (31 & h), h >>>= 5, d -= 5, a.ncode = 4 + (15 & h), h >>>= 4, d -= 4, a.nlen > 286 || a.ndist > 30) { t.msg = \"too many length or distance symbols\", a.mode = ze; break } a.have = 0, a.mode = 18; case 18: for (; a.have < a.ncode;) { for (; d < 3;) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } a.lens[Z[a.have++]] = 7 & h, h >>>= 3, d -= 3 } for (; a.have < 19;)a.lens[Z[a.have++]] = 0; if (a.lencode = a.lendyn, a.lenbits = 7, E = { bits: a.lenbits }, x = _e(0, a.lens, 0, 19, a.lencode, 0, a.work, E), a.lenbits = E.bits, x) { t.msg = \"invalid code lengths set\", a.mode = ze; break } a.have = 0, a.mode = 19; case 19: for (; a.have < a.nlen + a.ndist;) { for (; z = a.lencode[h & (1 << a.lenbits) - 1], b = z >>> 24, g = z >>> 16 & 255, p = 65535 & z, !(b <= d);) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } if (p < 16) h >>>= b, d -= b, a.lens[a.have++] = p; else { if (16 === p) { for (R = b + 2; d < R;) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } if (h >>>= b, d -= b, 0 === a.have) { t.msg = \"invalid bit length repeat\", a.mode = ze; break } y = a.lens[a.have - 1], c = 3 + (3 & h), h >>>= 2, d -= 2 } else if (17 === p) { for (R = b + 3; d < R;) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } h >>>= b, d -= b, y = 0, c = 3 + (7 & h), h >>>= 3, d -= 3 } else { for (R = b + 7; d < R;) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } h >>>= b, d -= b, y = 0, c = 11 + (127 & h), h >>>= 7, d -= 7 } if (a.have + c > a.nlen + a.ndist) { t.msg = \"invalid bit length repeat\", a.mode = ze; break } for (; c--;)a.lens[a.have++] = y } } if (a.mode === ze) break; if (0 === a.lens[256]) { t.msg = \"invalid code -- missing end-of-block\", a.mode = ze; break } if (a.lenbits = 9, E = { bits: a.lenbits }, x = _e(1, a.lens, 0, a.nlen, a.lencode, 0, a.work, E), a.lenbits = E.bits, x) { t.msg = \"invalid literal/lengths set\", a.mode = ze; break } if (a.distbits = 6, a.distcode = a.distdyn, E = { bits: a.distbits }, x = _e(2, a.lens, a.nlen, a.ndist, a.distcode, 0, a.work, E), a.distbits = E.bits, x) { t.msg = \"invalid distances set\", a.mode = ze; break } if (a.mode = 20, e === ue) break t; case 20: a.mode = 21; case 21: if (l >= 6 && o >= 258) { t.next_out = r, t.avail_out = o, t.next_in = s, t.avail_in = l, a.hold = h, a.bits = d, se(t, f), r = t.next_out, n = t.output, o = t.avail_out, s = t.next_in, i = t.input, l = t.avail_in, h = a.hold, d = a.bits, a.mode === xe && (a.back = -1); break } for (a.back = 0; z = a.lencode[h & (1 << a.lenbits) - 1], b = z >>> 24, g = z >>> 16 & 255, p = 65535 & z, !(b <= d);) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } if (g && 0 == (240 & g)) { for (m = b, k = g, v = p; z = a.lencode[v + ((h & (1 << m + k) - 1) >> m)], b = z >>> 24, g = z >>> 16 & 255, p = 65535 & z, !(m + b <= d);) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } h >>>= m, d -= m, a.back += m } if (h >>>= b, d -= b, a.back += b, a.length = p, 0 === g) { a.mode = 26; break } if (32 & g) { a.back = -1, a.mode = xe; break } if (64 & g) { t.msg = \"invalid literal/length code\", a.mode = ze; break } a.extra = 15 & g, a.mode = 22; case 22: if (a.extra) { for (R = a.extra; d < R;) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } a.length += h & (1 << a.extra) - 1, h >>>= a.extra, d -= a.extra, a.back += a.extra } a.was = a.length, a.mode = 23; case 23: for (; z = a.distcode[h & (1 << a.distbits) - 1], b = z >>> 24, g = z >>> 16 & 255, p = 65535 & z, !(b <= d);) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } if (0 == (240 & g)) { for (m = b, k = g, v = p; z = a.distcode[v + ((h & (1 << m + k) - 1) >> m)], b = z >>> 24, g = z >>> 16 & 255, p = 65535 & z, !(m + b <= d);) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } h >>>= m, d -= m, a.back += m } if (h >>>= b, d -= b, a.back += b, 64 & g) { t.msg = \"invalid distance code\", a.mode = ze; break } a.offset = p, a.extra = 15 & g, a.mode = 24; case 24: if (a.extra) { for (R = a.extra; d < R;) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } a.offset += h & (1 << a.extra) - 1, h >>>= a.extra, d -= a.extra, a.back += a.extra } if (a.offset > a.dmax) { t.msg = \"invalid distance too far back\", a.mode = ze; break } a.mode = 25; case 25: if (0 === o) break t; if (c = f - o, a.offset > c) { if (c = a.offset - c, c > a.whave && a.sane) { t.msg = \"invalid distance too far back\", a.mode = ze; break } c > a.wnext ? (c -= a.wnext, u = a.wsize - c) : u = a.wnext - c, c > a.length && (c = a.length), w = a.window } else w = n, u = r - a.offset, c = a.length; c > o && (c = o), o -= c, a.length -= c; do { n[r++] = w[u++] } while (--c); 0 === a.length && (a.mode = 21); break; case 26: if (0 === o) break t; n[r++] = a.length, o--, a.mode = 21; break; case 27: if (a.wrap) { for (; d < 32;) { if (0 === l) break t; l--, h |= i[s++] << d, d += 8 } if (f -= o, t.total_out += f, a.total += f, f && (t.adler = a.check = a.flags ? M(a.check, n, f, r - f) : B(a.check, n, f, r - f)), f = o, (a.flags ? h : Ae(h)) !== a.check) { t.msg = \"incorrect data check\", a.mode = ze; break } h = 0, d = 0 } a.mode = 28; case 28: if (a.wrap && a.flags) { for (; d < 32;) { if (0 === l) break t; l--, h += i[s++] << d, d += 8 } if (h !== (4294967295 & a.total)) { t.msg = \"incorrect length check\", a.mode = ze; break } h = 0, d = 0 } a.mode = 29; case 29: x = be; break t; case ze: x = me; break t; case 31: return ke; case 32: default: return pe }return t.next_out = r, t.avail_out = o, t.next_in = s, t.avail_in = l, a.hold = h, a.bits = d, (a.wsize || f !== t.avail_out && a.mode < ze && (a.mode < 27 || e !== fe)) && Fe(t, t.output, t.next_out, f - t.avail_out), _ -= t.avail_in, f -= t.avail_out, t.total_in += _, t.total_out += f, a.total += f, a.wrap && f && (t.adler = a.check = a.flags ? M(a.check, n, f, t.next_out - f) : B(a.check, n, f, t.next_out - f)), t.data_type = a.bits + (a.last ? 64 : 0) + (a.mode === xe ? 128 : 0) + (20 === a.mode || 15 === a.mode ? 256 : 0), (0 === _ && 0 === f || e === fe) && x === we && (x = ve), x }, inflateEnd: t => { if (!t || !t.state) return pe; let e = t.state; return e.window && (e.window = null), t.state = null, we }, inflateGetHeader: (t, e) => { if (!t || !t.state) return pe; const a = t.state; return 0 == (2 & a.wrap) ? pe : (a.head = e, e.done = !1, we) }, inflateSetDictionary: (t, e) => { const a = e.length; let i, n, s; return t && t.state ? (i = t.state, 0 !== i.wrap && 11 !== i.mode ? pe : 11 === i.mode && (n = 1, n = B(n, e, a, 0), n !== i.check) ? me : (s = Fe(t, e, a, a), s ? (i.mode = 31, ke) : (i.havedict = 1, we))) : pe }, inflateInfo: \"pako inflate (from Nodeca project)\" }; var Ne = function () { this.text = 0, this.time = 0, this.xflags = 0, this.os = 0, this.extra = null, this.extra_len = 0, this.name = \"\", this.comment = \"\", this.hcrc = 0, this.done = !1 }; const Be = Object.prototype.toString, { Z_NO_FLUSH: Ce, Z_FINISH: Me, Z_OK: He, Z_STREAM_END: je, Z_NEED_DICT: Ke, Z_STREAM_ERROR: Pe, Z_DATA_ERROR: Ye, Z_MEM_ERROR: Ge } = j; function Xe(t) { this.options = Bt({ chunkSize: 65536, windowBits: 15, to: \"\" }, t || {}); const e = this.options; e.raw && e.windowBits >= 0 && e.windowBits < 16 && (e.windowBits = -e.windowBits, 0 === e.windowBits && (e.windowBits = -15)), !(e.windowBits >= 0 && e.windowBits < 16) || t && t.windowBits || (e.windowBits += 32), e.windowBits > 15 && e.windowBits < 48 && 0 == (15 & e.windowBits) && (e.windowBits |= 15), this.err = 0, this.msg = \"\", this.ended = !1, this.chunks = [], this.strm = new Yt, this.strm.avail_out = 0; let a = Le.inflateInit2(this.strm, e.windowBits); if (a !== He) throw new Error(H[a]); if (this.header = new Ne, Le.inflateGetHeader(this.strm, this.header), e.dictionary && (\"string\" == typeof e.dictionary ? e.dictionary = jt(e.dictionary) : \"[object ArrayBuffer]\" === Be.call(e.dictionary) && (e.dictionary = new Uint8Array(e.dictionary)), e.raw && (a = Le.inflateSetDictionary(this.strm, e.dictionary), a !== He))) throw new Error(H[a]) } function We(t, e) { const a = new Xe(e); if (a.push(t), a.err) throw a.msg || H[a.err]; return a.result } Xe.prototype.push = function (t, e) { const a = this.strm, i = this.options.chunkSize, n = this.options.dictionary; let s, r, l; if (this.ended) return !1; for (r = e === ~~e ? e : !0 === e ? Me : Ce, \"[object ArrayBuffer]\" === Be.call(t) ? a.input = new Uint8Array(t) : a.input = t, a.next_in = 0, a.avail_in = a.input.length; ;) { for (0 === a.avail_out && (a.output = new Uint8Array(i), a.next_out = 0, a.avail_out = i), s = Le.inflate(a, r), s === Ke && n && (s = Le.inflateSetDictionary(a, n), s === He ? s = Le.inflate(a, r) : s === Ye && (s = Ke)); a.avail_in > 0 && s === je && a.state.wrap > 0 && 0 !== t[a.next_in];)Le.inflateReset(a), s = Le.inflate(a, r); switch (s) { case Pe: case Ye: case Ke: case Ge: return this.onEnd(s), this.ended = !0, !1 }if (l = a.avail_out, a.next_out && (0 === a.avail_out || s === je)) if (\"string\" === this.options.to) { let t = Pt(a.output, a.next_out), e = a.next_out - t, n = Kt(a.output, t); a.next_out = e, a.avail_out = i - e, e && a.output.set(a.output.subarray(t, t + e), 0), this.onData(n) } else this.onData(a.output.length === a.next_out ? a.output : a.output.subarray(0, a.next_out)); if (s !== He || 0 !== l) { if (s === je) return s = Le.inflateEnd(this.strm), this.onEnd(s), this.ended = !0, !0; if (0 === a.avail_in) break } } return !0 }, Xe.prototype.onData = function (t) { this.chunks.push(t) }, Xe.prototype.onEnd = function (t) { t === He && (\"string\" === this.options.to ? this.result = this.chunks.join(\"\") : this.result = Ct(this.chunks)), this.chunks = [], this.err = t, this.msg = this.strm.msg }; var qe = { Inflate: Xe, inflate: We, inflateRaw: function (t, e) { return (e = e || {}).raw = !0, We(t, e) }, ungzip: We, constants: j }; const { Deflate: Je, deflate: Qe, deflateRaw: Ve, gzip: $e } = ne, { Inflate: ta, inflate: ea, inflateRaw: aa, ungzip: ia } = qe; var na = Je, sa = Qe, ra = Ve, la = $e, oa = ta, ha = ea, da = aa, _a = ia, fa = j, ca = { Deflate: na, deflate: sa, deflateRaw: ra, gzip: la, Inflate: oa, inflate: ha, inflateRaw: da, ungzip: _a, constants: fa }; t.Deflate = na, t.Inflate = oa, t.constants = fa, t.default = ca, t.deflate = sa, t.deflateRaw = ra, t.gzip = la, t.inflate = ha, t.inflateRaw = da, t.ungzip = _a, Object.defineProperty(t, \"__esModule\", { value: !0 }) }));","import { StyleSheet, } from 'react-native';\nimport { withTheme } from 'react-native-elements';\nimport { color } from 'react-native-elements/dist/helpers';\n\nconst lightTheme = StyleSheet.create({\n closeModalIcon: {\n alignSelf: 'flex-end',\n position: 'absolute',\n top: 0,\n right: 0,\n },\n\n titleText: {\n\n fontSize: 20,\n },\n\n modalView: {\n height: 300,\n },\n\n startGameDifficulty: {\n flexDirection: 'row',\n width: 250,\n alignItems: 'center',\n justifyContent: 'center',\n\n },\n\n startGameButton: {\n width: 250,\n margin: 10\n },\n\n startGameContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n dominoBorder: {\n borderRightColor: '#D3D3D3',\n borderRightWidth: 1,\n },\n dominoPlayerText: {\n color: \"#000000\",\n fontSize: 8,\n width: '105%',\n textAlign: 'center',\n marginBottom: 10,\n\n },\n instructionsText: {\n color: \"#000000\",\n fontSize: 10,\n width: '105%',\n textAlign: 'center',\n marginBottom: 10,\n\n },\n dominoPlayerTextJoin: {\n color: \"#000000\",\n fontSize: 8,\n width: '105%',\n textAlign: 'center',\n marginBottom: 10,\n fontStyle: 'italic',\n },\n dominoScoreText: {\n color: \"#000000\",\n fontSize: 24,\n width: '105%',\n textAlign: 'center',\n marginBottom: 10,\n },\n dominoPlayer: {\n width: 50,\n alignItems: 'center',\n justifyContent: 'center',\n flex: 1,\n marginLeft: '1%',\n marginRight: '1%',\n },\n dominoPlayerPic: {\n resizeMode: 'contain',\n width: 50,\n height: 50,\n borderRadius: 50 / 2,\n marginBottom: 10,\n },\n dominoPlayerButton: {\n width: 60,\n margin: 5,\n borderRadius: 10,\n },\n dominoTableHolder: {\n flexDirection: 'row'\n },\n dominoTableHolderButton: {\n flexDirection: 'row'\n },\n playButton: {\n marginTop: 10,\n width: '100%',\n justifyContent: 'center',\n },\n modalOverlay: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n backgroundColor: 'rgba(0,0,0,0.5)'\n },\n stickToTop: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n backgroundColor: \"#ffffff\",\n },\n adCard: {\n marginHorizontal: '10%',\n width: '80vw',\n },\n newGameCard: {\n marginHorizontal: '10%',\n },\n dominoTable: {\n marginHorizontal: '10%',\n },\n newGameTitle: {\n\n },\n newGameText: {\n marginBottom: 20,\n textAlign: 'center',\n },\n newGame: {},\n textInputIcon: {\n height: 40,\n width: 50,\n backgroundColor: 'rgba(220,220,220,0.2)',\n paddingTop: 6\n },\n textInputIconContainer: {\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n marginBottom: 20,\n },\n spinnerContainer: {\n marginTop: 40,\n },\n logo: {\n resizeMode: 'contain',\n width: 250,\n height: 100,\n },\n primaryButtonStyle: {\n\n },\n textInputIconStyle: {\n height: 40,\n width: 200,\n backgroundColor: 'rgba(220,220,220,0.2)',\n },\n textInputStyle: {\n height: 40,\n width: 250,\n marginBottom: 20,\n backgroundColor: 'rgba(220,220,220,0.2)',\n },\n incorrectPasswordStyle: {\n height: 40,\n width: 250,\n marginBottom: 20,\n backgroundColor: 'rgba(252,213,206,0.3)',\n },\n signupContainer: {\n flexDirection: 'row',\n flex: 1,\n marginTop: 30,\n marginBottom: 20,\n alignItems: 'center',\n justifyContent: 'center',\n },\n signupContainer2: {\n flexDirection: 'row',\n flex: 1,\n marginTop: 5,\n marginBottom: 10,\n alignItems: 'center',\n justifyContent: 'center',\n },\n formContainer: {\n marginTop: 20,\n alignItems: 'center',\n justifyContent: 'flex-start',\n flex: 6\n },\n signupFormContainer: {\n marginTop: 20,\n alignItems: 'center',\n justifyContent: 'flex-start',\n flex: 12\n },\n logoContainer: {\n alignItems: 'center',\n justifyContent: 'flex-end',\n flex: 5\n },\n tabLogoContainer: {\n alignItems: 'center',\n backgroundColor: 'white',\n },\n profPic: {\n resizeMode: 'contain',\n width: 100,\n height: 100,\n borderRadius: 100 / 2\n },\n adIframe:{\n\n },\n tabLogo: {\n resizeMode: 'contain',\n width: 125,\n height: 50,\n },\n tabLogo2: {\n resizeMode: 'contain',\n width: 64,\n height: 25,\n },\n labelText: {\n textAlign: 'left',\n alignItems: 'flex-start',\n justifyContent: 'flex-start',\n margin: 0,\n padding: 0,\n },\n tabNavContainer: {\n\n\n },\n homeMenu: {\n backgroundColor: 'rgba(255,255,255,1.0)',\n\n },\n playContent: {\n paddingBottom: \"5%\",\n\n },\n container2: {\n flex: 1,\n backgroundColor: \"#ffffff\",\n },\n container: {\n flex: 1,\n },\n genericText: {\n color: \"#000000\",\n marginRight: 5,\n },\n genericText2: {\n color: \"#000000\",\n marginRight: 5, \n alignItems: 'flex-start',\n justifyContent: 'flex-start',\n },\n buttonText: {\n color: \"#268529\"\n },\n errorText: {\n color: \"#8E1600\"\n },\n successText: {\n color: \"#268529\"\n },\n\n\n\n\n // container2: {\n // flex: 1,\n // marginTop: StatusBar.currentHeight || 0,\n // },\n item: {\n backgroundColor: '#f9c2ff',\n padding: 20,\n marginVertical: 8,\n marginHorizontal: 16,\n },\n title: {\n fontSize: 32,\n },\n});\n\nconst lightStyleTheme = {\n\n placeholderTextColor: \"#acacac\",\n primaryButtonColor: \"#268529\",\n tabNavigation: {\n indicatorStyle: { backgroundColor: \"#268529\" },\n innerHeight: 500,\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n },\n\n\n}\n\nexport { lightTheme, lightStyleTheme };","import { lightTheme, lightStyleTheme } from './lightTheme'\nimport { darkTheme, darkStyleTheme } from './darkTheme'\n\n\nvar lightThemeActive: boolean = true;\nvar styles = lightTheme;\nvar styleTheme = lightStyleTheme;\n\nif (!lightThemeActive) {\n styles = darkTheme;\n styleTheme = darkStyleTheme;\n}\n\n\nexport { styles, styleTheme };\n","import { StyleSheet, } from 'react-native';\n\nconst darkTheme = StyleSheet.create({\n closeModalIcon: {\n alignSelf: 'flex-end',\n position: 'absolute',\n top: 0,\n right: 0,\n },\n\n titleText: {\n\n fontSize: 20,\n },\n\n modalView: {\n height: 300,\n },\n\n startGameDifficulty: {\n flexDirection: 'row',\n width: 250,\n alignItems: 'center',\n justifyContent: 'center',\n\n },\n\n startGameButton: {\n width: 250,\n margin: 10\n },\n\n startGameContainer: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n dominoBorder: {\n borderRightColor: '#D3D3D3',\n borderRightWidth: 1,\n },\n dominoPlayerText: {\n color: \"#ffffff\",\n fontSize: 8,\n width: '105%',\n textAlign: 'center',\n marginBottom: 10,\n },\n instructionsText: {\n color: \"#ffffff\",\n fontSize: 10,\n width: '105%',\n textAlign: 'center',\n marginBottom: 10,\n\n },\n dominoPlayerTextJoin: {\n color: \"#ffffff\",\n fontSize: 8,\n width: '105%',\n textAlign: 'center',\n marginBottom: 10,\n fontStyle: 'italic',\n },\n dominoScoreText: {\n color: \"#ffffff\",\n fontSize: 24,\n width: '105%',\n textAlign: 'center',\n marginBottom: 10,\n },\n dominoPlayer: {\n width: 50,\n alignItems: 'center',\n justifyContent: 'center',\n flex: 1,\n marginLeft: '1%',\n marginRight: '1%',\n },\n dominoPlayerPic: {\n resizeMode: 'contain',\n width: 50,\n height: 50,\n borderRadius: 50 / 2,\n marginBottom: 10,\n },\n dominoPlayerButton: {\n width: 60,\n margin: 5,\n borderRadius: 10,\n },\n dominoTableHolder: {\n flexDirection: 'row'\n },\n dominoTableHolderButton: {\n flexDirection: 'row'\n },\n playButton: {\n marginTop: 10,\n width: '100%',\n justifyContent: 'center',\n },\n modalOverlay: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n backgroundColor: 'rgba(0,0,0,0.5)'\n },\n stickToTop: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n },\n newGameCard: {\n marginHorizontal: '10%',\n backgroundColor: \"#121212\",\n },\n dominoTable: {\n marginHorizontal: '10%',\n backgroundColor: \"#121212\",\n },\n newGameTitle: {\n\n },\n newGameText: {\n marginBottom: 20,\n textAlign: 'center',\n color: \"#ffffff\"\n },\n newGame: {},\n textInputIcon: {\n height: 40,\n width: 50,\n backgroundColor: 'rgba(220,220,220,0.2)',\n paddingTop: 6\n },\n textInputIconContainer: {\n flex: 1,\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n marginBottom: 20,\n },\n spinnerContainer: {\n marginTop: 40,\n },\n logo: {\n resizeMode: 'contain',\n width: 250,\n height: 100,\n },\n primaryButtonStyle: {\n\n },\n textInputIconStyle: {\n height: 40,\n width: 200,\n backgroundColor: 'rgba(220,220,220,0.2)',\n },\n textInputStyle: {\n height: 40,\n width: 250,\n marginBottom: 20,\n backgroundColor: 'rgba(220,220,220,0.2)',\n },\n incorrectPasswordStyle: {\n height: 40,\n width: 250,\n marginBottom: 20,\n backgroundColor: 'rgba(252,213,206,0.3)',\n },\n signupContainer: {\n flexDirection: 'row',\n flex: 1,\n marginTop: 30,\n marginBottom: 20,\n alignItems: 'center',\n justifyContent: 'center',\n },\n signupContainer2: {\n flexDirection: 'row',\n flex: 1,\n marginTop: 5,\n marginBottom: 10,\n alignItems: 'center',\n justifyContent: 'center',\n },\n formContainer: {\n marginTop: 20,\n alignItems: 'center',\n justifyContent: 'flex-start',\n flex: 6\n },\n signupFormContainer: {\n marginTop: 20,\n alignItems: 'center',\n justifyContent: 'flex-start',\n flex: 12\n },\n logoContainer: {\n alignItems: 'center',\n justifyContent: 'flex-end',\n flex: 5\n },\n tabLogoContainer: {\n alignItems: 'center',\n backgroundColor: '#121212',\n },\n profPic: {\n resizeMode: 'contain',\n width: 100,\n height: 100,\n borderRadius: 100 / 2\n },\n adIframe:{\n\n },\n tabLogo: {\n resizeMode: 'contain',\n width: 125,\n height: 50,\n },\n tabLogo2: {\n resizeMode: 'contain',\n width: 64,\n height: 25,\n },\n labelText: {\n textAlign: 'left',\n alignItems: 'flex-start',\n justifyContent: 'flex-start',\n margin: 0,\n padding: 0,\n },\n tabNavContainer: {\n\n\n },\n homeMenu: {\n backgroundColor: 'rgba(255,255,255,1.0)',\n\n },\n playContent: {\n paddingBottom: \"5%\",\n backgroundColor: '#121212',\n\n },\n container: {\n flex: 1,\n backgroundColor: '#121212',\n },\n genericText: {\n color: \"#ffffff\",\n marginRight: 5,\n },\n buttonText: {\n color: \"#268529\"\n },\n errorText: {\n color: \"#8E1600\"\n },\n successText: {\n color: \"#268529\"\n },\n\n\n\n\n // container2: {\n // flex: 1,\n // marginTop: StatusBar.currentHeight || 0,\n // },\n item: {\n backgroundColor: '#f9c2ff',\n padding: 20,\n marginVertical: 8,\n marginHorizontal: 16,\n },\n title: {\n fontSize: 32,\n },\n});\n\nconst darkStyleTheme = {\n placeholderTextColor: \"#acacac\",\n primaryButtonColor: \"#268529\",\n tabNavigation: {\n indicatorStyle: { \n backgroundColor: \"#268529\" \n },\n style: { \n backgroundColor: \"#121212\",\n },\n innerHeight: 500,\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n activeTintColor: \"#ffffff\",\n },\n\n\n}\n\nexport { darkTheme, darkStyleTheme };\n\n\n\n// tabNavigation and container, newgame card","\n\n\nconst domain: string = 'https://jamaicanstyledominoes.com';\n\nfunction setCookie(cname, cvalue, exdays) {\n const d = new Date();\n d.setTime(d.getTime() + (exdays*24*60*60*1000));\n let expires = \"expires=\"+ d.toUTCString();\n document.cookie = cname + \"=\" + cvalue + \";\" + expires + \";path=/;\" + \"domain=jamaicanstyledominoes.com\";\n document.cookie = cname + \"=\" + cvalue + \";\" + expires + \";path=/;\" + \"domain=api.jamaicanstyledominoes.com\";\n document.cookie = cname + \"=\" + cvalue + \";\" + expires + \";path=/;\" + \"domain=test.jamaicanstyledominoes.com\";\n document.cookie = cname + \"=\" + cvalue + \";\" + expires + \";path=/;\";\n}\n\nfunction getCookie(cname) {\n let name = cname + \"=\";\n let decodedCookie = decodeURIComponent(document.cookie);\n let ca = decodedCookie.split(';');\n for(let i = 0; i {\n var cookiePromise = new Promise(function(resolve,reject){\n resolve(getCookie(key))\n })\n return cookiePromise\n}\n\nexport { storeCache, getCache }","const localURL: string = \"http://localhost:3000\";\nconst deployURL: string = \"https://api.jamaicanstyledominoes.com\"\nconst deployWSURL: string = \"wss://api.jamaicanstyledominoes.com\"\nconst localWSURL: string = \"ws://localhost:3000\"\nconst localFEURL: string = \"http://localhost:3001\"\nconst deployFEURL: string = \"http://jamaicanstyledominoes.com\"\n\n\n// var serverURL: string = localURL;\n// var serverWSURL: string = localWSURL;\n// var feUrl: string = localFEURL;\n\nvar serverURL: string = deployURL;\nvar serverWSURL: string = deployWSURL;\nvar feUrl: string = deployFEURL;\nexport {feUrl, serverURL, serverWSURL };","async function fetchWithTimeout(resource, options = {}) {\n const { timeout = 10000 } = options;\n\n const controller = new AbortController();\n const id = setTimeout(() => controller.abort(), timeout);\n const response = await fetch(resource, {\n ...options,\n signal: controller.signal\n });\n clearTimeout(id);\n return response;\n}\n\nexport { fetchWithTimeout }","\nimport { initializeApp } from \"firebase/app\";\nimport { getAnalytics, logEvent } from \"firebase/analytics\";\n\nconst firebaseConfig = {\n apiKey: \"AIzaSyALj3KUgF20124p2LRVhNLQQ1wL7Mv8hek\",\n authDomain: \"jamaican-style-dominoes-3.firebaseapp.com\",\n projectId: \"jamaican-style-dominoes-3\",\n storageBucket: \"jamaican-style-dominoes-3.appspot.com\",\n messagingSenderId: \"311163813639\",\n appId: \"1:311163813639:web:d5a051d0cc1d77b6d9cfa2\",\n measurementId: \"G-1N8DZB61M1\"\n};\n\n\nconst app = initializeApp(firebaseConfig);\nconst analytics = getAnalytics();\n\n\n// Initialize Firebase\n\n\nfunction logFirebaseEvent(eventName: string, eventMeta: object){\n \n logEvent(analytics, eventName, eventMeta);\n}\n\nexport {logFirebaseEvent};","import React, { Component } from 'react';\nimport { ActivityIndicator, Platform, StyleSheet, View, Image, Button, Text, TextInput, TouchableHighlight } from 'react-native';\nimport { StatusBar } from 'expo-status-bar';\nimport { styles, styleTheme } from '../themes/styles'\nimport { darkStyleTheme } from '../themes/darkTheme';\nimport { storeCache, getCache } from '../utils/cacheStore'\nimport { serverURL } from '../constants/serverURL'\nimport { Icon } from 'react-native-elements'\nimport { fetchWithTimeout } from './fetchWithTimeout'\nimport { logFirebaseEvent } from '../utils/firebase';\n\nexport default class LoginForm extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n userIdentity: \"\",\n userPassword: \"\",\n showForm: true,\n passwordStyle: styles.textInputIconStyle,\n passwordPlaceholder: \"Password\",\n showPassword: false,\n passwordIcon: \"eye-slash\",\n errorText: \"\",\n }\n };\n\n setUsername(text: string) {\n this.setState({\n userIdentity: text\n });\n };\n\n setPassword(text: string) {\n this.setState({\n userPassword: text\n });\n };\n\n storeToken(loginResponse) {\n storeCache('token', loginResponse.token)\n };\n\n handleResponse(response) {\n if (response.status == 200) {\n this.setState({ showForm: true });\n console.log(\"successfully logged in\");\n response.json().then(data => {\n this.storeToken(data);\n this.props.navigation.navigate('HomeMenu', {})\n } \n );\n \n this.setState({\n errorText: \"\",\n })\n }\n else if (response.status == 401) {\n console.log(\"Incorrect credentials\")\n this.setState({ showForm: true });\n this.setState({\n errorText: \"Please check your login credentials\",\n })\n setTimeout(() => this.setState({\n errorText: \"\",\n }), 5000)\n logFirebaseEvent( 'user_unauthorized', { });\n }\n };\n\n\n togglePasswordShow() {\n\n if (this.state.showPassword) {\n this.setState({ passwordIcon: \"eye-slash\", showPassword: false })\n } else {\n this.setState({ passwordIcon: \"eye\", showPassword: true })\n }\n };\n\n handleAuthCheckResponse(response) {\n if (response.status == 200) {\n this.setState({ showForm: true });\n console.log(\"successfully logged in\");\n response.json().then(data => this.storeToken(data));\n this.props.navigation.navigate('HomeMenu', {})\n this.setState({\n errorText: \"\",\n })\n } else {\n this.setState({ showForm: true });\n }\n\n };\n\n authCheck() {\n this.setState({ showForm: false });\n getCache(\"token\").then((value: string) => {\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': value },\n body: JSON.stringify({})\n };\n return requestOptions\n\n }).then((requestOptions) => {\n console.log(\"Req options: \", requestOptions)\n return fetch(serverURL + '/user/verify/token', requestOptions)\n }).then((response: Response) => {\n this.handleAuthCheckResponse(response)\n })\n\n };\n\n login() {\n this.setState({ showForm: false });\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ identifier: this.state.userIdentity, password: this.state.userPassword })\n };\n fetchWithTimeout(serverURL + '/user/login', requestOptions,)\n .then(response => this.handleResponse(response)).catch((e) => {/* false */\n this.setState({ showForm: true });\n this.setState({\n errorText: \"Sorry, unable to login at the moment\",\n })\n setTimeout(() => this.setState({\n errorText: \"\",\n }), 5000)\n logFirebaseEvent('login_timeout', { });\n })\n };\n\n transitionToSignUp() {\n this.props.navigation.navigate('SignUp', {})\n };\n\n guestLogin() {\n this.setState({ showForm: false });\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({})\n };\n fetchWithTimeout(serverURL + '/user/be-guest', requestOptions)\n .then(response => this.handleResponse(response))\n .catch((e) => {/* false */\n this.setState({ showForm: true });\n this.setState({\n errorText: \"Sorry, unable to login at the moment, allowing offline play\",\n })\n setTimeout(() => this.setState({\n errorText: \"\",\n }), 5000)\n setTimeout(() => this.props.navigation.navigate('HomeMenu', {}), 3000);\n logFirebaseEvent( 'login_timeout_guest', { });\n })\n }\n\n forgotPassword() {\n this.props.navigation.navigate('PasswordReset', {})\n }\n\n transitionToPlay() {\n var gameMode = \"offline-cutthroat\"\n if (Platform.OS == \"web\") {\n window.location.href = '/play?gameMode=' + gameMode;\n } else {\n this.props.navigation.navigate('Game', { gameMode: gameMode })\n }\n };\n\n componentDidMount() {\n\n this.authCheck()\n\n }\n\n renderForm() {\n return (\n this.setUsername(text)}\n placeholder=\"Email or Username\"\n autoCompleteType='username'\n placeholderTextColor={styleTheme.placeholderTextColor}\n style={styles.textInputStyle} />\n\n \n this.setPassword(text)}\n style={this.state.passwordStyle}\n autoCompleteType='password'\n secureTextEntry={!this.state.showPassword}\n placeholderTextColor={styleTheme.placeholderTextColor}\n placeholder={this.state.passwordPlaceholder} />\n\n this.togglePasswordShow()}\n name={this.state.passwordIcon} type='font-awesome' color={styleTheme.placeholderTextColor} />\n\n \n\n this.login()}\n title=\"Sign In\"\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Click here to login\" />\n\n \n Don't have an account ?\n this.transitionToSignUp()}>Register\n \n\n \n Skip the login\n this.guestLogin()}>Play!\n \n\n \n Forgot password\n this.forgotPassword()}>Reset password\n \n\n \n {this.state.errorText}\n \n\n )\n }\n\n renderSpinner() {\n return (\n \n \n \n )\n }\n\n render() {\n\n if (this.state.showForm) {\n return this.renderForm()\n } else {\n return this.renderSpinner()\n }\n\n }\n}\n","import React, { Component } from 'react';\nimport { ActivityIndicator, StyleSheet, View, Image, Button, TextInput } from 'react-native';\nimport { StatusBar } from 'expo-status-bar';\nimport LoginForm from './LoginForm'\nimport {styles, styleTheme} from \"../themes/styles\"\n\nexport default class Login extends Component {\n constructor(props){\n super(props);\n }\n render() {\n return (\n\n \n \n \n\n \n \n \n \n \n )\n }\n}\n\n","import React, { Component } from 'react';\nimport { ActivityIndicator, CheckBox, Platform, View, Image, Button, Text, TextInput, TouchableHighlight } from 'react-native';\n//import CheckBox from '@react-native-community/checkbox';\nimport { StatusBar } from 'expo-status-bar';\nimport { styles, styleTheme } from '../themes/styles'\nimport { darkStyleTheme } from '../themes/darkTheme';\nimport { storeCache, getCache } from '../utils/cacheStore'\nimport {serverURL} from '../constants/serverURL'\nimport { Icon } from 'react-native-elements'\n\nfunction ValidateEmail(inputText) {\n console.log(\"Input text: \", inputText);\n var mailformat = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n if (inputText.match(mailformat)) {\n return true;\n }\n else {\n return false;\n }\n}\n\nfunction hasWhiteSpace(s) {\n return s.indexOf(' ') >= 0;\n}\n\nexport default class SignUpForm extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n fullname: \"\",\n usernames: \"\",\n userPassword: \"\",\n confirmPassword: \"\",\n userEmail: \"\",\n showForm: true,\n agree: false,\n passwordStyle: styles.textInputIconStyle,\n passwordPlaceholder: \"Password\",\n showPassword: false,\n passwordIcon: \"eye-slash\",\n confirmPasswordStyle: styles.textInputIconStyle,\n confirmPasswordPlaceholder: \"Confirm Password\",\n showConfirmPassword: false,\n confirmPasswordIcon: \"eye-slash\",\n errorText: \"\",\n successText: \"\",\n }\n };\n\n componentDidMount() {\n if (getCache('token') != \"\") {\n\n }\n }\n\n setName(text: string) {\n this.setState({\n fullname: text\n });\n };\n\n setEmail(text: string) {\n this.setState({\n userEmail: text\n });\n };\n\n setUsername(text: string) {\n this.setState({\n username: text\n });\n };\n\n setConfirmPassword(text: string) {\n this.setState({\n confirmPassword: text\n });\n };\n\n setPassword(text: string) {\n this.setState({\n userPassword: text\n });\n };\n\n storeToken(loginResponse) {\n console.log(Platform.OS)\n storeCache('token', loginResponse.token)\n\n };\n\n handleResponse(response) {\n if (response.status == 200) {\n this.setState({ showForm: true });\n console.log(\"successfully registered\");\n this.setState({\n successText: \"Successfully created user.\",\n errorText: \"\",\n })\n setTimeout(()=> this.props.navigation.navigate('Login', {}), 5000)\n }\n else if (response.status == 401) {\n console.log(\"Unable to create user\")\n this.setState({ showForm: true });\n this.setState({\n errorText: \"Username or Email already registered.\",\n successText: \"\",\n })\n setTimeout(() => this.setState({\n errorText: \"\",\n successText: \"\",\n }), 5000)\n } else {\n console.log(\"Unable to create user\")\n this.setState({ showForm: true });\n this.setState({\n errorText: \"Username or Email already registered.\",\n successText: \"\",\n })\n setTimeout(() => this.setState({\n errorText: \"\",\n successText: \"\",\n }), 5000)\n }\n };\n\n togglePasswordShow() {\n if (this.state.showPassword) {\n this.setState({ passwordIcon: \"eye-slash\", showPassword: false })\n } else {\n this.setState({ passwordIcon: \"eye\", showPassword: true })\n }\n };\n\n toggleConfirmPasswordShow() {\n if (this.state.showConfirmPassword) {\n this.setState({ confirmPasswordIcon: \"eye-slash\", showConfirmPassword: false })\n } else {\n this.setState({ confirmPasswordIcon: \"eye\", showConfirmPassword: true })\n }\n };\n\n register() {\n if (this.state.userPassword.length < 6) {\n this.setState({\n errorText: \"Password too short.\",\n })\n return\n }\n\n if (this.state.userPassword != this.state.confirmPassword) {\n this.setState({\n errorText: \"Confirmation password does not match.\",\n })\n return\n }\n\n if (this.state.agree != true) {\n this.setState({\n errorText: \"Please agree to the conditions\",\n })\n return\n }\n\n if (ValidateEmail(this.state.username)){\n this.setState({\n errorText: \"Please do not use your email as a username\",\n })\n return\n }\n\n if ( hasWhiteSpace(this.state.username)){\n this.setState({\n errorText: \"Please do not have a space in your username\",\n })\n return\n }\n\n if ( this.state.username.length > 30){\n this.setState({\n errorText: \"Username too long\",\n })\n return\n }\n\n\n if (!ValidateEmail(this.state.userEmail)){\n this.setState({\n errorText: \"Please enter a valid email\",\n })\n return\n }\n\n if (this.state.fullname.trim() == \"\"){\n this.setState({\n errorText: \"Please enter a valid name\",\n })\n return\n }\n this.setState({ showForm: false });\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n username: this.state.username, password:\n this.state.userPassword, email: this.state.userEmail, name: this.state.fullname\n })\n };\n fetch(serverURL + '/user/add', requestOptions)\n .then(response => this.handleResponse(response))\n };\n\n transitionToLogin() {\n this.props.navigation.navigate('Login', { navigation: this.props.navigation })\n };\n\n transitionToLegacy() {\n window.location.href = 'http://jsdonline.axiomarray.com/sign_up';\n };\n\n openTermsAndConditions() {\n\n };\n\n setToggleCheckBox(value) {\n this.setState({ agree: value })\n };\n\n renderForm() {\n\n return (\n this.setName(text)}\n placeholder=\"Fullname\"\n autoCompleteType='name'\n placeholderTextColor={styleTheme.placeholderTextColor}\n style={styles.textInputStyle} />\n\n this.setUsername(text)}\n placeholder=\"Username\"\n autoCompleteType='username'\n placeholderTextColor={styleTheme.placeholderTextColor}\n style={styles.textInputStyle} />\n\n this.setEmail(text)}\n placeholder=\"Email\"\n autoCompleteType='email'\n placeholderTextColor={styleTheme.placeholderTextColor}\n style={styles.textInputStyle} />\n\n \n this.setPassword(text)}\n style={this.state.passwordStyle}\n secureTextEntry={!this.state.showPassword}\n autoCompleteType='password'\n placeholderTextColor={styleTheme.placeholderTextColor}\n placeholder={this.state.passwordPlaceholder} />\n\n this.togglePasswordShow()}\n name={this.state.passwordIcon} type='font-awesome' color={styleTheme.placeholderTextColor} />\n\n \n\n \n this.setConfirmPassword(text)}\n style={this.state.confirmPasswordStyle}\n secureTextEntry={!this.state.showConfirmPassword}\n autoCompleteType='password'\n placeholderTextColor={styleTheme.placeholderTextColor}\n placeholder={this.state.confirmPasswordPlaceholder} />\n\n this.toggleConfirmPasswordShow()}\n name={this.state.confirmPasswordIcon} type='font-awesome' color={styleTheme.placeholderTextColor} />\n\n \n\n \n this.setToggleCheckBox(newValue)}\n />\n I agree to the\n this.openTermsAndConditions()}>terms and conditions\n \n\n this.register()}\n title=\"Register\"\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Click here to register\" />\n\n \n Already have an account ?\n this.transitionToLogin()}>Login\n \n\n\n \n {this.state.successText}\n {this.state.errorText}\n \n )\n }\n\n renderSpinner() {\n return (\n \n \n \n )\n }\n\n render() {\n\n if (this.state.showForm) {\n return this.renderForm()\n } else {\n return this.renderSpinner()\n }\n\n }\n}\n","import React, { Component } from 'react';\nimport { ActivityIndicator, StyleSheet, View, Image, Button, TextInput } from 'react-native';\nimport { StatusBar } from 'expo-status-bar';\nimport SignUpForm from './SignUpForm'\nimport {styles, styleTheme} from \"../themes/styles\"\n\nexport default class SignUp extends Component {\n render() {\n return (\n\n \n \n \n\n \n \n \n \n \n )\n }\n}\n\n","import React, { Component } from 'react';\nimport { ActivityIndicator, StyleSheet, View, Image, Button, Text, Switch, Platform } from 'react-native';\nimport { StatusBar } from 'expo-status-bar';\nimport { Card } from 'react-native-elements';\nimport LoginForm from './LoginForm'\nimport { styles, styleTheme } from \"../themes/styles\";\nimport { Icon } from 'react-native-elements'\nimport { storeCache, getCache } from '../utils/cacheStore'\nimport { serverURL } from '../constants/serverURL'\nimport { logFirebaseEvent } from '../utils/firebase';\n\n\nfunction adStatusCallback(status) {\n console.log('Ad Status: ' + status);\n}\n\n\nvar options = {\n zoneId: 5076,\n adStatusCb: adStatusCallback\n};\n\nexport default class StartGameMenu extends Component {\n constructor(props) {\n super(props);\n this.state = {\n difficultyHard: false,\n errorText: \"\",\n }\n }\n\n startGame(gameMode: string, randomSeed: number) {\n console.log(\"Starting game: \", gameMode);\n console.log(\"Platform: \", Platform.OS)\n if (Platform.OS == \"web\") {\n storeCache(\"dominoGameMode\", gameMode)\n storeCache(\"connectionType\", \"local\")\n storeCache(\"gameURL\", \"\")\n storeCache(\"randomSeed\", randomSeed)\n logFirebaseEvent('play_game', { dominoGameMode: gameMode, connectionType: \"local\", randomSeed: randomSeed });\n fetch(serverURL + '/user/play');\n this.props.navigation.navigate('GameScreen', { gameMode: gameMode, online: false })\n \n } else {\n storeCache(\"dominoGameMode\", gameMode)\n storeCache(\"connectionType\", \"local\")\n storeCache(\"gameURL\", \"\")\n storeCache(\"randomSeed\", randomSeed)\n logFirebaseEvent('play_game', { dominoGameMode: gameMode, connectionType: \"local\", randomSeed: randomSeed });\n fetch(serverURL + '/user/play');\n this.props.navigation.navigate('GameScreen', { gameMode: gameMode, online: false })\n \n }\n\n }\n\n handleCreateGameResponse(response) {\n if (response.status == 200) {\n\n } else if (response.status == 400) {\n this.setState({\n errorText: \"Please Join the Game Below\",\n })\n setTimeout(() => this.setState({\n errorText: \"\",\n }), 5000)\n }\n else {\n this.setState({\n errorText: \"Error Creating game, please check your connection\",\n })\n setTimeout(() => this.setState({\n errorText: \"\",\n }), 5000)\n }\n\n };\n\n createGame(gameType: string) {\n this.setState({ showForm: false });\n getCache(\"token\").then((value: string) => {\n if (value == '') {\n return Promise.reject(\"do not auth check an empty token\")\n }\n console.log(\"goat: \", value)\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': value },\n body: JSON.stringify({ \"type\": gameType, \"isPrivate\": false })\n };\n return requestOptions\n\n }).then((requestOptions) => {\n console.log(\"Req options: \", requestOptions)\n return fetch(serverURL + '/online/create', requestOptions)\n }).then((response: Response) => {\n this.handleCreateGameResponse(response)\n }).catch((err) => {/* false */\n console.log(\"Error: \", err)\n })\n };\n\n render() {\n\n return (\n\n \n this.startGame(\"cutthroat\", Math.floor(Math.random() * 10000000000))}\n title=\"Play AI Cutthroat\"\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Play AI Cutthroat\" />\n \n\n \n this.startGame(\"partner\", Math.floor(Math.random() * 10000000000))}\n title=\"Play AI Partner\"\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Play AI Partner\" />\n \n {/* \n this.createGame(\"cutthroat\")}\n title=\"Create Online Cutthroat\"\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Play Online Cutthroat\" />\n\n \n \n this.createGame(\"partner\")}\n title=\"Create Online Partner\"\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"PlayOnlinePartner\" />\n */}\n {this.state.errorText}\n\n )\n }\n}\n\n","import React, { Component } from 'react';\nimport { ActivityIndicator, StyleSheet, View, Image, Button, TextInput, Text, Modal, Alert, TouchableOpacity, TouchableWithoutFeedback } from 'react-native';\nimport { Card } from 'react-native-elements';\nimport { StatusBar } from 'expo-status-bar';\nimport LoginForm from './LoginForm'\nimport { styles, styleTheme } from \"../themes/styles\"\nimport StartGameMenu from './StartGameMenu';\nimport { Icon } from 'react-native-elements'\n\n\nconst users = [\n {\n name: 'brynn',\n avatar: 'https://cdn.britannica.com/45/18445-050-59915B6F/Dominoes.jpg'\n },\n]\n\nexport default class NewGameCard extends Component {\n constructor(props) {\n super(props);\n this.state = {\n startGameVisible: false\n }\n }\n\n toggleNewGameModal() {\n this.setState({\n startGameVisible: !this.state.startGameVisible\n });\n };\n\n render() {\n return (\n\n\n \n\n\n \n Start New Game\n \n \n Practice vs the computer AI or see if you can manage the real yardie dem playing online.\n\n \n \n \n \n \n \n \n\n )\n }\n}\n\n","import React from 'react';\n\nexport default class AdComponent extends React.Component {\n componentDidMount () {\n try {\n (window.adsbygoogle = window.adsbygoogle || []).push({});\n } catch (err){\n console.log(\"Error trying to push ads: \", err)\n }\n }\n\nrender () {\n return (\n \n );\n }\n}\n","import React, { Component } from 'react';\nimport { ActivityIndicator, StyleSheet, View, Image, Button, Text, Switch, Platform } from 'react-native';\nimport { StatusBar } from 'expo-status-bar';\nimport { Card } from 'react-native-elements';\nimport LoginForm from './LoginForm'\nimport { styles, styleTheme } from \"../themes/styles\";\nimport { Icon } from 'react-native-elements'\nimport { storeCache, getCache } from '../utils/cacheStore'\nimport { serverURL, serverWSURL } from '../constants/serverURL'\nimport NewGameCard from './NewGameCard';\nimport { Divider } from '@rneui/themed';\nimport { parseJwt } from '../utils/parseToken';\nimport AdSense from 'react-adsense';\nimport { logFirebaseEvent } from '../utils/firebase';\nimport AdComponent from './GoogleAds'\n\nconst now = performance.now();\n\n\nexport default class DominoTable extends Component {\n constructor(props) {\n super(props);\n\n\n\n\n var nativeAd = (\n\n \n {/*
*/}\n \n
\n )\n\n if (Platform.OS != \"web\") {\n nativeAd = (\n \n )\n }\n\n\n this.state = {\n difficultyHard: false,\n errorText: \"\",\n username: \"\",\n adId: \"\",\n adSrc: \"\",\n ad: nativeAd,\n }\n getCache(\"token\").then((value: string) => {\n var user = parseJwt(value)\n var guest = \"\"\n if (user.is_guest) {\n guest = \" (guest)\"\n }\n this.setState({\n username: user.username\n })\n })\n }\n\n handleGameInteraction(response) {\n this.props.downloadList()\n setTimeout(() => {\n this.props.downloadList()\n }, 2000);\n }\n\n\n handleCreateGameResponse(response) {\n if (response.status == 200) {\n\n } else if (response.status == 400) {\n this.setState({\n errorText: \"Please Join the Game Below\",\n })\n setTimeout(() => this.setState({\n errorText: \"\",\n }), 5000)\n }\n else {\n this.setState({\n errorText: \"Error Creating game, please check your connection\",\n })\n setTimeout(() => this.setState({\n errorText: \"\",\n }), 5000)\n }\n\n };\n\n spectateGame(gameID: string, gameMode: string) {\n console.log(\"Platform: \", Platform.OS)\n if (Platform.OS == \"web\") {\n storeCache(\"connectionType\", \"online\");\n storeCache(\"gameURL\", serverWSURL + \"/online/spectate/\" + gameID);\n storeCache(\"randomSeed\", 0);\n storeCache(\"dominoGameMode\", gameMode);\n storeCache(\"actionType\", \"spectate\");\n logFirebaseEvent('spectate_game_online', { dominoGameMode: gameMode, connectionType: \"online\" });\n this.props.navigation.navigate('GameScreen', { gameMode: gameMode, online: true, gameID: gameID, classicMode: false });\n // window.location.href = '/play';\n } else {\n //this.props.navigation.navigate('Game', { gameMode: gameMode})\n }\n }\n\n playGame(gameID: string, gameMode: string) {\n console.log(\"Platform: \", Platform.OS)\n if (Platform.OS == \"web\") {\n storeCache(\"connectionType\", \"online\")\n storeCache(\"gameURL\", serverWSURL + \"/online/play/\" + gameID)\n storeCache(\"randomSeed\", 0)\n storeCache(\"dominoGameMode\", gameMode)\n storeCache(\"actionType\", \"play\")\n logFirebaseEvent('play_game_online', { dominoGameMode: gameMode, connectionType: \"online\" });\n this.props.navigation.navigate('GameScreen', { gameMode: gameMode, online: true, gameID: gameID, classicMode: false })\n\n //window.location.href = '/play';\n } else {\n //this.props.navigation.navigate('Game', { gameMode: gameMode})\n }\n }\n\n spectateClassicGame(gameID: string, gameMode: string) {\n console.log(\"Platform: \", Platform.OS)\n if (Platform.OS == \"web\") {\n storeCache(\"connectionType\", \"online\");\n storeCache(\"gameURL\", serverWSURL + \"/online/app/spectate/\" + gameMode + \"/\" + gameID);\n storeCache(\"randomSeed\", 0);\n storeCache(\"dominoGameMode\", gameMode);\n storeCache(\"actionType\", \"spectate\");\n logFirebaseEvent('spectate_classic_game_online', { dominoGameMode: gameMode, connectionType: \"online\" });\n this.props.navigation.navigate('GameScreen', { gameMode: gameMode, online: true, gameID: gameID, classicMode: true });\n // window.location.href = '/play';\n } else {\n //this.props.navigation.navigate('Game', { gameMode: gameMode})\n }\n }\n\n playClassicGame(gameID: string, gameMode: string) {\n console.log(\"Platform: \", Platform.OS)\n if (Platform.OS == \"web\") {\n storeCache(\"connectionType\", \"online\")\n storeCache(\"gameURL\", serverWSURL + \"/online/app/play/\" + gameMode + \"/\" + gameID)\n storeCache(\"randomSeed\", 0)\n storeCache(\"dominoGameMode\", gameMode)\n storeCache(\"actionType\", \"play\")\n logFirebaseEvent('play_classic_game_online', { dominoGameMode: gameMode, connectionType: \"online\" });\n this.props.navigation.navigate('GameScreen', { gameMode: gameMode, online: true, gameID: gameID, classicMode: true })\n\n //window.location.href = '/play';\n } else {\n //this.props.navigation.navigate('Game', { gameMode: gameMode})\n }\n }\n\n createGame(gameType: string) {\n this.setState({ showForm: false });\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': getCache(\"token\") },\n body: JSON.stringify({ \"type\": gameType, \"isPrivate\": false })\n };\n fetch(serverURL + '/online/create', requestOptions)\n .then(response => this.handleCreateGameResponse(response))\n logFirebaseEvent('create_game', { dominoGameMode: gameType });\n // TODO: Load AD then load modal\n };\n\n joinGame(gameId: string, position: number) {\n getCache(\"token\").then((value: string) => {\n if (value == '') {\n return Promise.reject(\"do not auth check an empty token\")\n }\n\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': value },\n body: JSON.stringify({ \"gameId\": gameId, \"position\": position })\n };\n return requestOptions\n\n }).then((requestOptions) => {\n console.log(\"Req options: \", requestOptions)\n return fetch(serverURL + '/online/join', requestOptions)\n }).then((response: Response) => {\n this.handleGameInteraction(response)\n }).catch(() => {/* false */\n\n })\n logFirebaseEvent('join_game', { gameID: gameId, position: position });\n };\n\n leaveGame(gameId: string) {\n getCache(\"token\").then((value: string) => {\n if (value == '') {\n return Promise.reject(\"do not auth check an empty token\")\n }\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': value },\n body: JSON.stringify({ \"gameId\": gameId })\n };\n return requestOptions\n\n }).then((requestOptions) => {\n console.log(\"Req options: \", requestOptions)\n return fetch(serverURL + '/online/leave', requestOptions)\n }).then((response: Response) => {\n this.handleGameInteraction(response)\n }).catch(() => {/* false */\n\n })\n logFirebaseEvent('leave_game', { gameID: gameId });\n };\n\n joinClassicGame(gameId: string, position: number) {\n getCache(\"token\").then((value: string) => {\n if (value == '') {\n return Promise.reject(\"do not auth check an empty token\")\n }\n\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': value },\n body: JSON.stringify({ \"gameId\": gameId, \"position\": position,\"type\": this.props.item.gameType })\n };\n return requestOptions\n\n }).then((requestOptions) => {\n console.log(\"Req options: \", requestOptions)\n return fetch(serverURL + '/online/app/join', requestOptions)\n }).then((response: Response) => {\n this.handleGameInteraction(response)\n }).catch(() => {/* false */\n\n })\n logFirebaseEvent('join_classic_game', { gameID: gameId, position: position, type: this.props.item.gameType });\n };\n\n leaveClassicGame(gameId: string) {\n getCache(\"token\").then((value: string) => {\n if (value == '') {\n return Promise.reject(\"do not auth check an empty token\")\n }\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': value },\n body: JSON.stringify({ \"gameId\": gameId, \"type\": this.props.item.gameType})\n };\n return requestOptions\n\n }).then((requestOptions) => {\n console.log(\"Req options: \", requestOptions)\n return fetch(serverURL + '/online/app/leave', requestOptions)\n }).then((response: Response) => {\n this.handleGameInteraction(response)\n }).catch(() => {/* false */\n\n })\n logFirebaseEvent('leave_classic_game', { gameID: gameId, type: this.props.item.gameType });\n };\n\n getPlayer(playerMeta, gameState, gameId, appGame, position) {\n let playerAction;\n var buttonTitle = 'Join';\n var username = playerMeta.username;\n var displayname = playerMeta.displayname;\n var buttonDisabled = playerMeta.spotOccupied;\n var playerTextStyle = styles.dominoPlayerText;\n var playerActionButton = (\n this.joinGame(gameId, position)}\n title={buttonTitle}\n disabled={buttonDisabled}\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Join Domino Game\" />\n )\n if (appGame){\n playerActionButton = (\n this.joinClassicGame(gameId, position)}\n title={buttonTitle}\n disabled={buttonDisabled}\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Join Domino Game\" />\n )\n }\n if (playerMeta.username == this.state.username && playerMeta.username != \"\") {\n buttonDisabled = false;\n buttonTitle = 'Leave';\n playerActionButton = (\n this.leaveGame(gameId)}\n title={buttonTitle}\n disabled={buttonDisabled}\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Join Domino Game\" />\n )\n if(appGame){\n playerActionButton = (\n this.leaveClassicGame(gameId)}\n title={buttonTitle}\n disabled={buttonDisabled}\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Join Domino Game\" />\n )\n }\n\n }\n if (playerMeta.username == '' && !playerMeta.spotOccupied) {\n username = 'click to join'\n playerTextStyle = styles.dominoPlayerTextJoin;\n }\n if (gameState == 'waiting') {\n playerAction = (\n \n {playerActionButton}\n \n )\n } else {\n playerAction = {playerMeta.wins}\n }\n return (\n (\n \n \n {displayname}\n {playerAction}\n {this.state.errorText}\n \n )\n )\n }\n\n getActionButton(gameState, playerInvolved) {\n if (gameState == 'running' && playerInvolved) {\n return (\n \n \n this.playGame(this.props.item.id, this.props.item.gameType)}\n title=\"Play\"\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Click here to play\" />\n \n \n )\n } else if (gameState == 'running') {\n return (\n \n \n this.spectateGame(this.props.item.id, this.props.item.gameType)}\n title=\"Spectate\"\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Click here to spected\" />\n \n \n )\n } else if (gameState == 'active' && playerInvolved) {\n return (\n \n \n this.playClassicGame(this.props.item.id, this.props.item.gameType)}\n title=\"Play\"\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Click here to play\" />\n \n \n )\n } else if (gameState == 'active') {\n return (\n \n \n this.spectateClassicGame(this.props.item.id, this.props.item.gameType)}\n title=\"Spectate\"\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Click here to spected\" />\n \n \n )\n } else {\n return ()\n }\n\n }\n\n componentDidMount(): void {\n if (Platform.OS == \"web\") {\n const script = document.createElement(\"script\");\n\n script.src = this.state.adSrc;\n script.async = true;\n\n document.body.appendChild(script);\n }\n }\n\n render() {\n var cutthroatDivider = (\n \n )\n var appInfoMessage = (\n \n This table uses the server that connects to the app you can find on the app store\n \n )\n if (this.props.item.appGame == false){\n appInfoMessage = \n }\n if (this.props.item.gameType == 'partner') {\n cutthroatDivider = \n }\n if (this.props.item.type == \"table\") {\n return \n } else if (this.props.item.type == \"ad\") {\n\n return this.state.ad;\n }\n\n let player1, player2, player3, player4;\n player1 = this.getPlayer(this.props.item.player1, this.props.item.gameState, this.props.item.id, this.props.item.appGame,0)\n player2 = this.getPlayer(this.props.item.player2, this.props.item.gameState, this.props.item.id, this.props.item.appGame,1)\n player3 = this.getPlayer(this.props.item.player3, this.props.item.gameState, this.props.item.id, this.props.item.appGame,2)\n player4 = this.getPlayer(this.props.item.player4, this.props.item.gameState, this.props.item.id, this.props.item.appGame,3)\n let actionButton = this.getActionButton(this.props.item.gameState, this.props.item.playerInvolved)\n return (\n \n {this.props.item.gameType}\n {appInfoMessage}\n \n \n {player1}\n {cutthroatDivider}\n {player3}\n \n {player2}\n {cutthroatDivider}\n {player4}\n \n {actionButton}\n )\n }\n}\n\n","import React, { Component, Fragment } from 'react';\nimport { ActivityIndicator, StyleSheet, View, ScrollView, FlatList, Text, Image, Button, TextInput } from 'react-native';\nimport { StatusBar } from 'expo-status-bar';\nimport LoginForm from './LoginForm'\nimport { styles, styleTheme } from '../themes/styles'\nimport DominoTable from './DominoTable';\nimport { storeCache, getCache } from '../utils/cacheStore'\nimport { serverURL } from '../constants/serverURL'\n\nexport default class Play extends Component {\n\n\n constructor(props) {\n super(props);\n this.state = {\n gameList: [\n {\n id: 'default',\n type: \"table\",\n },\n ],\n classicGameList: [],\n refresh: false,\n }\n }\n\n\n handleGetGameList(response) {\n if (response.status == 200) {\n response.json().then(data => this.updateGameList(data));\n }\n }\n\n handleGetClassicGameList(response) {\n if (response.status == 200) {\n response.json().then(data => this.updateClassicGameList(data));\n }\n }\n\n updateGameList(gameList) {\n var defaultTable = [\n {\n id: 'default',\n type: \"table\",\n },\n ]\n\n var adsTable = [\n {\n id: 'ad',\n type: 'ad',\n }\n ]\n this.setState({\n gameList: defaultTable.concat(gameList).concat(this.state.classicGameList).concat(adsTable),\n refresh: !this.state.refresh\n })\n }\n\n updateClassicGameList(gameList) {\n var defaultTable = [];\n this.setState({\n classicGameList: defaultTable.concat(gameList),\n })\n }\n\n\n getGameList() {\n // Getting the new golang version\n getCache(\"token\").then((value: string) => {\n if (value == '') {\n return Promise.reject(\"do not auth check an empty token\")\n }\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': value },\n body: JSON.stringify({})\n };\n return requestOptions\n\n }).then((requestOptions) => {\n return fetch(serverURL + '/online/list', requestOptions)\n }).then((response: Response) => {\n this.handleGetGameList(response)\n }).catch((error) => {/* false */\n //console.log(\"error: \", error)\n })\n\n\n }\n\n getClassicList() {\n // Getting the new golang version\n getCache(\"token\").then((value: string) => {\n if (value == '') {\n return Promise.reject(\"do not auth check an empty token\")\n }\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': value },\n body: JSON.stringify({})\n };\n return requestOptions\n\n }).then((requestOptions) => {\n return fetch(serverURL + '/online/app/list', requestOptions)\n }).then((response: Response) => {\n this.handleGetClassicGameList(response)\n }).catch((error) => {\n })\n\n\n }\n\n\n\n\n componentDidMount(): void {\n this.getGameList()\n setInterval(() => this.getGameList(), 2000)\n }\n\n renderTable({ item }, props) {\n return (\n \n )\n }\n\n\n render() {\n return (\n\n this.renderTable(item, this.props)}\n keyExtractor={item => item.id}\n extraData={this.state.refresh}\n contentContainerStyle={{\n flexGrow: 1,\n }} />\n )\n }\n}\n\n","import React, { Component} from 'react';\nimport { Image, View, Platform, TouchableOpacity, Text, StyleSheet } from 'react-native';\nimport { AntDesign } from '@expo/vector-icons';\nimport * as ImagePicker from 'expo-image-picker';\nimport ImageResizer from 'react-native-image-resizer';\nimport Resizer from \"react-image-file-resizer\";\nimport { storeCache, getCache } from '../utils/cacheStore';\nimport { serverURL } from '../constants/serverURL';\n\n\nconst Compress = require('compress.js');\nvar now = performance.now();\n\nasync function resizeImageFn(file) {\n\n const compress = new Compress();\n const resizedImage = await compress.compress([file], {\n size: 0.5, // the max size in MB, defaults to 2MB\n quality: 1, // the quality of the image, max is 1,\n maxWidth: 200, // the max width of the output image, defaults to 1920px\n maxHeight: 200, // the max height of the output image, defaults to 1920px\n resize: true // defaults to true, set false if you do not want to resize the image width and height\n })\n const img = resizedImage[0];\n const base64str = img.data\n const imgExt = img.ext\n const resizedFiile = Compress.convertBase64ToFile(base64str, imgExt)\n return resizedFiile;\n}\n\nconst fetchImageFromUri = async (uri) => {\n const response = await fetch(uri);\n const blob = await response.blob();\n return blob;\n};\n\nasync function uploadPhoto(picture) {\n const data = new FormData();\n data.append('image', picture);\n var token = await getCache(\"token\");\n let res = await fetch(\n serverURL + '/user/upload/picture',\n {\n method: 'post',\n headers: { 'jsd-auth': token },\n body: data,\n }\n );\n let responseJson = await res.json();\n console.log(res);\n}\n\n\nexport default class UploadImage extends Component {\n constructor(props) {\n super(props);\n console.log(\"Props: \", props.image, \"Props: \", props);\n this.state = {\n image: props.image,\n imageW: props.image,\n }\n }\n\n setImage(img) {\n if(this.state.imageW == img){\n return\n }\n var img2 = img;\n if(img.includes(\"http\")){\n img = img + \"?\" + performance.now()\n }\n \n setTimeout(() => { this.setState({\n image: img,\n imageW: img2,\n }) }, 1000);\n }\n\n\n addImage = async () => {\n let _image = await ImagePicker.launchImageLibraryAsync({\n mediaTypes: ImagePicker.MediaTypeOptions.Images,\n allowsEditing: true,\n aspect: [4, 4],\n quality: 0,\n });\n\n if (!_image.cancelled) {\n var img = await fetchImageFromUri(_image.uri);\n uploadPhoto(img);\n this.setImage(_image.uri);\n }\n };\n\n componentDidUpdate(){\n this.setImage(this.props.image);\n }\n\n render() {\n return (\n \n {\n this.state.image && \n }\n\n \n \n {this.state.image ? 'Edit' : 'Upload'} Image\n \n \n \n\n\n \n\n );\n }\n}\n\nconst imageUploaderStyles = StyleSheet.create({\n container: {\n elevation: 2,\n height: 200,\n width: 200,\n backgroundColor: '#efefef',\n position: 'relative',\n borderRadius: 999,\n overflow: 'hidden',\n },\n uploadBtnContainer: {\n opacity: 0.7,\n position: 'absolute',\n right: 0,\n bottom: 0,\n backgroundColor: 'lightgrey',\n width: '100%',\n height: '25%',\n },\n uploadBtn: {\n display: 'flex',\n alignItems: \"center\",\n justifyContent: 'center'\n }\n})","import React, { Component } from 'react';\nimport { ActivityIndicator, StyleSheet, View, Image, Button, Text, FlatList, Linking, TextInput, Switch } from 'react-native';\nimport { StatusBar } from 'expo-status-bar';\nimport { Card } from 'react-native-elements';\nimport LoginForm from './LoginForm'\nimport { styles, styleTheme } from \"../themes/styles\";\nimport { Icon } from 'react-native-elements'\nimport { storeCache, getCache } from '../utils/cacheStore'\nimport { serverURL } from '../constants/serverURL'\nimport { parseJwt } from '../utils/parseToken';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\nimport UploadImage from './UploadImage';\nimport AdComponent from './GoogleAds';\nexport default class UserAccount extends Component {\n constructor(props) {\n super(props);\n this.state = {\n username: \"\",\n email: \"\",\n profilePictureURL: null,\n onlinePartnerRoundWins: 0,\n onlinePartnerRounds: 0,\n onlinePartnerGames: 0,\n onlinePartnerWins: 0,\n onlineCutthroatRoundWins: 0,\n onlineCutthroatRounds: 0,\n onlineCutthroatGames: 0,\n onlineCutthroatWins: 0,\n }\n\n this.getUserInfo();\n\n getCache(\"token\").then((value: string) => {\n var user = parseJwt(value)\n var guest = \"\"\n if (user.is_guest) {\n guest = \" (guest)\"\n }\n this.setState({\n username: user.username + guest,\n bitcoinTitle: \"Copy Bitcoin Address\"\n })\n })\n\n }\n\n storeToken(loginResponse) {\n storeCache('token', loginResponse.token)\n };\n\n handleRefreshResponse(response) {\n if (response.status == 200) {\n response.json().then(data => this.storeToken(data));\n\n } else {\n response.json().then(data => this.storeToken(\"\"));\n this.props.navigation.navigate('Login', {})\n this.setState({\n errorText: \"\",\n })\n }\n };\n\n refreshToken() {\n this.setState({ showForm: false });\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': getCache(\"token\") },\n body: JSON.stringify({})\n };\n fetch(serverURL + '/user/refresh/token', requestOptions)\n .then(response => this.handleRefreshResponse(response))\n };\n\n handleLogoutResponse(response) {\n storeCache(\"token\", \"\")\n this.props.navigation.navigate('Login', {})\n };\n\n logoutUser() {\n this.setState({ showForm: false });\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': getCache(\"token\") },\n body: JSON.stringify({})\n };\n fetch(serverURL + '/user/logout/', requestOptions)\n .then(response => this.handleLogoutResponse(response))\n };\n\n handleUserInfoResponse(response) {\n\n response.json().then(data => {\n this.setState({\n username: data.username,\n email: data.email,\n profilePictureURL: data.profPicURL,\n onlinePartnerRoundWins: data.onlinePartnerRoundWins,\n onlinePartnerRounds: data.onlinePartnerRounds,\n onlinePartnerGames: data.onlinePartnerGames,\n onlinePartnerWins: data.onlinePartnerGameWins,\n onlineCutthroatRoundWins: data.onlineCutthroatRoundWins,\n onlineCutthroatRounds: data.onlineCutthroatRounds,\n onlineCutthroatGames: data.onlineCutthroatGames,\n onlineCutthroatWins: data.onlineCutthroatGameWins,\n\n })\n console.log(\"User Info: \", this.state.profilePictureURL);\n });\n }\n\n getUserInfo(): void {\n getCache(\"token\").then((value: string) => {\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': value },\n body: JSON.stringify({})\n };\n fetch(serverURL + '/user/info/', requestOptions)\n .then(response => this.handleUserInfoResponse(response))\n })\n }\n\n componentDidMount(): void {\n this.getUserInfo()\n }\n\n\n renderAccount({ item }, props) {\n if (item == 1) {\n console.log(\"Account Info: \", item)\n return (\n (\n \n \n Account Information\n \n \n \n {'\\nUsername:' + this.state.username + '\\n'}\n {'\\nEmail:' + this.state.email + '\\n'}\n {'\\nOnline Partner Rounds Played:' + this.state.onlinePartnerRounds + '\\n'}\n {'\\nOnline Partner Rounds Won:' + this.state.onlinePartnerRoundWins + '\\n'}\n {'\\nOnline Partner Games Played:' + this.state.onlinePartnerGames + '\\n'}\n {'\\nOnline Partner Games Won:' + this.state.onlinePartnerWins + '\\n'}\n {'\\nOnline Cutthroat Rounds Played:' + this.state.onlineCutthroatRounds + '\\n'}\n {'\\nOnline Cutthroat Rounds Won:' + this.state.onlineCutthroatRoundWins + '\\n'}\n {'\\nOnline Cutthroat Games Played:' + this.state.onlineCutthroatGames + '\\n'}\n {'\\nOnline Cutthroat Games Won:' + this.state.onlineCutthroatWins + '\\n'}\n\n \n this.logoutUser()}\n title=\"Logout User\"\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Click here to login\" />\n \n\n \n \n\n )\n )\n }\n return (\n \n \n \n )\n\n }\n\n\n render() {\n var now = performance.now();\n\n return (\n this.renderAccount(item, this.props)}\n contentContainerStyle={{\n flexGrow: 1,\n }} />\n )\n }\n}\n\n","import React, { Component } from 'react';\nimport { ActivityIndicator, StyleSheet, View, Image, Button, Text, Linking, TextInput, Switch } from 'react-native';\nimport { StatusBar } from 'expo-status-bar';\nimport { Card } from 'react-native-elements';\nimport LoginForm from './LoginForm'\nimport { styles, styleTheme } from \"../themes/styles\";\nimport { Icon } from 'react-native-elements'\nimport { storeCache, getCache } from '../utils/cacheStore'\nimport { serverURL } from '../constants/serverURL'\nimport { parseJwt } from '../utils/parseToken';\nimport { CopyToClipboard } from 'react-copy-to-clipboard';\n\nfunction ordinal_suffix_of(i) {\n var j = i % 10,\n k = i % 100;\n if (j == 1 && k != 11) {\n return i + \"st\";\n }\n if (j == 2 && k != 12) {\n return i + \"nd\";\n }\n if (j == 3 && k != 13) {\n return i + \"rd\";\n }\n return i + \"th\";\n}\n\nexport default class PlayerRank extends Component {\n constructor(props) {\n super(props);\n this.state = {\n username: \"\"\n }\n getCache(\"token\").then((value: string) => {\n var user = parseJwt(value)\n var guest = \"\"\n if (user.is_guest) {\n guest = \" (guest)\"\n }\n this.setState({\n username: user.username + guest,\n bitcoinTitle: \"Copy Bitcoin Address\"\n })\n })\n\n }\n\n storeToken(loginResponse) {\n storeCache('token', loginResponse.token)\n };\n\n handleRefreshResponse(response) {\n if (response.status == 200) {\n response.json().then(data => this.storeToken(data));\n\n } else {\n response.json().then(data => this.storeToken(\"\"));\n this.props.navigation.navigate('Login', {})\n this.setState({\n errorText: \"\",\n })\n }\n };\n\n refreshToken() {\n this.setState({ showForm: false });\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': getCache(\"token\") },\n body: JSON.stringify({})\n };\n fetch(serverURL + '/user/refresh/token', requestOptions)\n .then(response => this.handleRefreshResponse(response))\n };\n\n handleLogoutResponse(response) {\n storeCache(\"token\", \"\")\n this.props.navigation.navigate('Login', {})\n };\n\n logoutUser() {\n this.setState({ showForm: false });\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': getCache(\"token\") },\n body: JSON.stringify({})\n };\n fetch(serverURL + '/user/logout/', requestOptions)\n .then(response => this.handleLogoutResponse(response))\n };\n\n componentDidMount(): void {\n\n }\n\n\n render() {\n return (\n \n \n \n \n {'\\n' + this.props.item.username + '\\n'}\n \n {'\\nScore:' + Math.round(this.props.item.eloScore) + '\\n'}\n\n {'\\n' + ordinal_suffix_of(this.props.item.position) + '\\n'}\n \n \n\n )\n\n\n }\n}","import React, { Component } from 'react';\nimport { ActivityIndicator, StyleSheet, View, Image, Button, Text, Switch, FlatList } from 'react-native';\nimport { StatusBar } from 'expo-status-bar';\nimport { Card } from 'react-native-elements';\nimport LoginForm from './LoginForm'\nimport { styles, styleTheme } from \"../themes/styles\";\nimport { Icon } from 'react-native-elements'\nimport GameCanvas from '../game/GameCanvas'\nimport { storeCache, getCache } from '../utils/cacheStore'\nimport { serverURL } from '../constants/serverURL';\nimport PlayerRank from './PlayerRank';\nimport SwitchSelector from \"react-native-switch-selector\";\n\nconst options = [\n { label: \"Cutthroat\", value: \"cutthroat\", testID: \"cutthroat\", accessibilityLabel: \"cutthroat\" },\n { label: \"Partner\", value: \"partner\", testID: \"partner\", accessibilityLabel: \"partner\" },\n];\n\n\nexport default class PlayerRankings extends Component {\n constructor(props) {\n super(props);\n this.state = {\n rankingList: [],\n refresh: false,\n mode: \"cutthroat\",\n }\n this.handleToggle = this.handleToggle.bind(this);\n }\n\n handleGetRankings(response) {\n if (response.status == 200) {\n response.json().then(data => this.updateRankingsList(data));\n }\n }\n\n updateRankingsList(rankingList) {\n var defaultTable = [\n {\n type: \"controller\",\n }\n ]\n for (var i = 0; i < rankingList.rankings.length; i++) {\n rankingList.rankings[i].position = i + 1;\n rankingList.rankings[i].id = i;\n }\n\n this.setState({\n rankingList: defaultTable.concat(rankingList.rankings),\n refresh: !this.state.refresh\n })\n }\n\n getRankingList() {\n getCache(\"token\").then((value: string) => {\n if (value == '') {\n return Promise.reject(\"do not auth check an empty token\")\n }\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': value },\n body: JSON.stringify({ \"type\": this.state.mode })\n };\n return requestOptions\n\n }).then((requestOptions) => {\n return fetch(serverURL + '/user/rankings', requestOptions)\n }).then((response: Response) => {\n this.handleGetRankings(response)\n }).catch((error) => {/* false */\n //console.log(\"error: \", error)\n })\n }\n\n renderTable({ item }, props) {\n if (item.type == \"controller\") {\n return (\n \n Player Rankings\n \n\n \n {'\\n'}\n \n Players must have played a game within the least 14 days to show up in the rankings.\n Winning a game against a player that is ranked higher will score you more points.\n Losing when the game predicted that you would win will lose you points.\n \n )\n }\n return (\n \n )\n }\n\n componentDidMount(): void {\n this.getRankingList()\n setInterval(() => this.getRankingList(), 60000)\n }\n\n handleToggle(value) {\n console.log(\"Value: \", value);\n this.setState({ mode: value });\n this.getRankingList();\n }\n\n\n render() {\n\n return (\n // \n // \n // \n // Player Rankings\n // \n // \n\n <>\n\n\n\n this.renderTable(item, this.props)}\n keyExtractor={item => item.id}\n extraData={this.state.refresh}\n contentContainerStyle={{\n flexGrow: 1,\n }} />\n\n \n // \n // \n // \n )\n\n\n }\n}\n\n","import { serverURL } from './constants/serverURL';\nimport { logFirebaseEvent } from './utils/firebase';\nimport { getCache } from './utils/cacheStore'\n\n\nconst publicVapidKey = 'BE3ihH1nmjwvG429MO8DQxnRnnyZMg0ImBGxY4LojYMD86H3qjOB94T6IhZsCtER3EptkUkHJNeJodTV94xYYW0';\n\n// Copied from the web-push documentation\nconst urlBase64ToUint8Array = (base64String) => {\n const padding = '='.repeat((4 - base64String.length % 4) % 4);\n const base64 = (base64String + padding)\n .replace(/\\-/g, '+')\n .replace(/_/g, '/');\n\n const rawData = window.atob(base64);\n const outputArray = new Uint8Array(rawData.length);\n\n for (let i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i);\n }\n return outputArray;\n};\n\nexport function getPermission() {\n // Let's check if the browser supports notifications\n if (!(\"Notification\" in window)) {\n console.log(\"This browser does not support desktop notification\");\n logFirebaseEvent( 'notification_not_supported', {});\n }\n\n // Otherwise, we need to ask the user for permission\n else if (Notification.permission !== 'denied' || Notification.permission === \"default\") {\n Notification.requestPermission(function (permission) {\n // If the user accepts, let's create a notification\n if (permission === \"granted\") {\n logFirebaseEvent('notification_permission_granted', {});\n } else {\n logFirebaseEvent('notification_permission_denied', {});\n }\n });\n }\n\n // At last, if the user has denied notifications, and you\n // want to be respectful there is no need to bother them any more.\n}\n\n\nexport async function subscribe() {\n if (!('serviceWorker' in navigator)) {\n console.log(\"Service worker not registered\")\n return;\n }\n\n const registration = await navigator.serviceWorker.ready;\n console.log(\"Service worker ready: \", subscribeURL, subscription)\n // Subscribe to push notifications\n const subscription = await registration.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: urlBase64ToUint8Array(publicVapidKey),\n });\n\n var subscribeURL = serverURL + '/user/subscribe';\n console.log(\"Subscribing to notifications: \", subscribeURL, subscription)\n\n await getCache(\"token\").then((value) => {\n if (value == '') {\n return Promise.reject(\"do not auth check an empty token\")\n }\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': value },\n body: JSON.stringify(subscription)\n };\n return requestOptions\n\n }).then((requestOptions) => {\n console.log(\"Req options: \", requestOptions)\n return fetch(subscribeURL, requestOptions)\n }).then((response) => {\n \n }).catch(() => {/* false */\n console.log(\"Error subscribing to notifcations\")\n });\n console.log(\"Finish trying to subcscribe to notifications\")\n};","import React, { Component } from 'react';\nimport { ActivityIndicator, StyleSheet, SafeAreaView, Image, Button, TextInput, View } from 'react-native';\nimport { StatusBar } from 'expo-status-bar';\nimport Login from './Login';\nimport SignUp from './SignUp';\nimport Play from './Play';\nimport { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs';\nimport { styles, styleTheme } from \"../themes/styles\"\nimport { storeCache, getCache } from '../utils/cacheStore'\nimport {serverURL} from '../constants/serverURL'\nimport UserAccount from './UserAccount';\nimport PlayerRankings from './PlayerRankings';\nimport Game from './Game';\nimport * as notificationSubscriber from \"../notification-subscribe\";\n\nconst Tab = createMaterialTopTabNavigator();\n\n\nexport default class HomeMenu extends Component {\n constructor(props) {\n super(props);\n }\n\n storeToken(loginResponse) {\n storeCache('token', loginResponse.token)\n };\n\n handleAuthCheckResponse(response) {\n if (response.status != 200) {\n this.setState({ showForm: true });\n console.log(\"Auth check failed: \", response);\n response.json().then(data => this.storeToken(\"\"));\n this.props.navigation.navigate('Login', {})\n this.setState({\n errorText: \"\",\n })\n }\n };\n\n authCheck() {\n this.setState({ showForm: false });\n getCache(\"token\").then((value: string) => {\n if(value == ''){\n return Promise.reject(\"do not auth check an empty token\")\n }\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': value },\n body: JSON.stringify({})\n };\n return requestOptions\n\n }).then((requestOptions) => {\n console.log(\"Req options: \", requestOptions)\n return fetch(serverURL + '/user/verify/token', requestOptions)\n }).then((response: Response) => {\n this.handleAuthCheckResponse(response)\n }).catch(() => {/* false */\n \n })\n\n };\n\n componentDidMount() {\n // var token = getCache('token')\n // if (token != \"\" && token != undefined) {\n this.authCheck()\n // }\n }\n\n render() {\n return (\n (\n \n \n \n \n \n \n \n \n \n )\n )\n }\n}\n\nnotificationSubscriber.getPermission();\nnotificationSubscriber.subscribe();","import React, { Component } from 'react';\nimport { Platform, StyleSheet, Text, View } from 'react-native';\nimport { WebView } from 'react-native-webview';\nimport { SafeAreaProvider} from 'react-native-safe-area-context';\nimport {StatusBar} from 'react-native';\nimport { serverURL, feUrl } from '../constants/serverURL'\nvar htmlContent = require('../game/game.html');\n// ...\n\nfunction getHeight() {\n if (Platform.OS === \"android\"){\n return StatusBar.currentHeight\n } \n return 30\n} \nexport default class Game extends Component {\n componentDidMount(): void {\n console.log(this.props)\n }\n\n onNavigationStateChange(navState) {\n this.setState({\n canGoBack: navState.canGoBack\n });\n }\n\n\n render() {\n\n const data = 'lorem ipsum';\n\n return (\n\n \n \n )\n \n }\n}","import React, { Component } from 'react';\nimport { ActivityIndicator, StyleSheet, View, Image, Button, Text,Linking, TextInput, Switch } from 'react-native';\nimport { StatusBar } from 'expo-status-bar';\nimport { Card } from 'react-native-elements';\nimport LoginForm from './LoginForm'\nimport { styles, styleTheme } from \"../themes/styles\";\nimport { Icon } from 'react-native-elements'\nimport { storeCache, getCache } from '../utils/cacheStore'\nimport { serverURL } from '../constants/serverURL'\nimport { parseJwt } from '../utils/parseToken';\nimport { SafeAreaView } from 'react-native-safe-area-context';\n\nexport default class GameMenu extends Component {\n constructor(props) {\n super(props);\n this.state = {\n username: \"\"\n }\n getCache(\"token\").then((value: string) => {\n var user = parseJwt(value)\n var guest = \"\"\n if (user.is_guest) {\n guest = \" (guest)\"\n }\n this.setState({\n username: user.username + guest\n })\n })\n\n }\n\n storeToken(loginResponse) {\n storeCache('token', loginResponse.token)\n };\n\n handleRefreshResponse(response) {\n if (response.status == 200) {\n response.json().then(data => this.storeToken(data));\n\n } else {\n response.json().then(data => this.storeToken(\"\"));\n\n this.setState({\n errorText: \"\",\n })\n }\n };\n\n refreshToken() {\n this.setState({ showForm: false });\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': getCache(\"token\") },\n body: JSON.stringify({})\n };\n fetch(serverURL + '/user/refresh/token', requestOptions)\n .then(response => this.handleRefreshResponse(response))\n };\n\n handleLogoutResponse(response) {\n storeCache(\"token\", \"\")\n this.props.navigation.navigate('Login', {})\n };\n\n logoutUser() {\n this.setState({ showForm: false });\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': getCache(\"token\") },\n body: JSON.stringify({})\n };\n fetch(serverURL + '/user/logout/', requestOptions)\n .then(response => this.handleLogoutResponse(response))\n };\n\n componentDidMount(): void {\n\n }\n\n quitToMenu() {\n const requestOptions = {\n method: 'GET',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': getCache(\"token\") },\n };\n fetch(serverURL + '/user/exit/game', requestOptions)\n this.props.navigation.navigate('HomeMenu', {})\n }\n\n\n render() {\n\n return (\n \n \n Game Menu\n \n \n {'Instructions'}\n {'\\nDouble tap the card you want to play !\\n \\nIf there are multiple choices, click on the board where you want the domino to be played.'}\n \n this.quitToMenu()}\n title=\"Quit to Menu\"\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Click here to quit to login\" />\n \n\n \n \n\n \n I want to tip the creator of this app\n \n \n \n Linking.openURL('http://paypal.me/damienhowarddunn')}\n title=\"Paypal\"\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Send Feedback\"\n />\n \n\n \n Linking.openURL('https://account.venmo.com/u/Damien-Howard-Dunn')}\n title=\"Venmo\"\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Venmo\"\n />\n \n\n\n \n Linking.openURL('https://cash.app/$howarddunn95')}\n title=\"CashApp\"\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Cash App\"\n />\n \n\n \n {\n window.location.href = \"mailto:support@jamaicanstyledominoes.com?subject=AppFeedback&body=message%20goes%20here\";\n }}\n title=\"Send Feedback\"\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Send Feedback\" />\n \n \n \n\n )\n\n\n }\n}\n\n","import React from 'react';\nimport {\n Platform,\n StyleSheet,\n Text,\n TouchableOpacity,\n Image,\n View,\n} from 'react-native';\n\nimport { GiftedChat, Actions, Bubble, Send } from 'react-native-gifted-chat';\nimport { serverURL, serverWSURL } from '../constants/serverURL';\nimport { storeCache, getCache } from '../utils/cacheStore'\nimport { parseJwt } from '../utils/parseToken';\nimport ChatWindowHolder from './ChatWindowHolder';\nimport { ReactNotifications, Store } from 'react-notifications-component';\nimport 'react-notifications-component/dist/theme.css';\n\n\n\nfunction truncate(str, n) {\n return (str.length > n) ? str.substr(0, n - 1) + '...' : str;\n};\nexport default class ChatWindow extends React.Component {\n constructor(props) {\n super(props);\n getCache(\"token\").then((value: string) => {\n var user = parseJwt(value)\n this.setState({\n username: user.username\n })\n })\n\n\n console.log(\"GameID: \", this.props.gameID);\n var chatLink = \"/online/chat/\";\n if (this.props.classicMode == true){\n chatLink = \"/online/app/chat/partner/\";\n }\n var ws = new WebSocket(serverWSURL + chatLink + this.props.gameID);\n var pingInterval;\n ws.onopen = () => {\n // connection opened\n console.log(\"Successfully opened chat connection\")\n //ws.send('connected'); // send a message\n pingInterval = setInterval(() => ws.send(\"\"), 1000);\n };\n\n\n this.state = {\n messages: [],\n loadEarlier: true,\n typingText: null,\n isLoadingEarlier: false,\n ws: ws,\n unread: 0,\n };\n\n this._isMounted = false;\n this.onSend = this.onSend.bind(this);\n this.onReceive = this.onReceive.bind(this);\n this.resetChatNotification = this.resetChatNotification.bind(this);\n this._isAlright = null;\n\n var compon = this;\n var errorFunc;\n errorFunc = (e) => {\n console.log(\"Websocket error: \", e)\n clearInterval(pingInterval);\n var ws = new WebSocket(serverWSURL + chatLink + this.props.gameID);\n ws.onopen = () => {\n // connection opened\n console.log(\"Successfully re-opened chat connection on error\")\n //ws.send('connected'); // send a message\n pingInterval = setInterval(() => ws.send(\"\"), 1000)\n };\n\n ws.onmessage = (e) => {\n console.log(\"Received from chatter: \", e.data)\n\n e.data.text().then((value: string) => {\n console.log(\"Received man: \", value)\n var msg = JSON.parse(value);\n this.onReceive(msg);\n })\n };\n\n ws.onerror = errorFunc;\n\n setTimeout(function () {\n compon.setState({\n ws: ws\n })\n }, 1000);\n\n\n } \n\n var closeFunc;\n closeFunc = (e) => {\n console.log('Socket is closed. Reconnect will be attempted in 1 second.', e.reason);\n clearInterval(pingInterval);\n var ws = new WebSocket(serverWSURL + chatLink + this.props.gameID);\n ws.onopen = () => {\n // connection opened\n console.log(\"Successfully re-opened chat connection on close\")\n //ws.send('connected'); // send a message\n pingInterval = setInterval(() => ws.send(\"\"), 1000)\n };\n\n ws.onmessage = (e) => {\n console.log(\"Received from chatter: \", e.data)\n\n e.data.text().then((value: string) => {\n console.log(\"Received man: \", value)\n var msg = JSON.parse(value);\n this.onReceive(msg);\n })\n };\n\n \n ws.onerror = errorFunc;\n\n setTimeout(function () {\n console.log(this)\n compon.setState({\n ws: ws\n })\n }, 1000);\n };\n ws.onerror = errorFunc;\n\n ws.onmessage = (e) => {\n console.log(\"Received from chatter: \", e.data)\n\n e.data.text().then((value: string) => {\n console.log(\"Received man: \", value)\n var msg = JSON.parse(value);\n this.onReceive(msg);\n })\n };\n\n ws.onclose = closeFunc;\n\n }\n\n componentWillMount() {\n\n this._isMounted = true;\n this.setState(() => {\n return {\n messages: [],\n };\n });\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n\n }\n\n onSend(messages = []) {\n for (var i = 0; i < messages.length; i++) {\n var message = {\n messageData: messages[i].text,\n voiceData: \"\",\n }\n this.state.ws.send(JSON.stringify(message));\n }\n this.setState((previousState) => {\n return {\n messages: GiftedChat.append(previousState.messages, messages),\n };\n });\n\n }\n\n resetChatNotification() {\n this.setState({\n unread: 0,\n });\n }\n\n\n onReceive(msg) {\n\n if (msg.user === this.state.username) {\n return\n }\n\n if (msg.messageData == \"\" && msg.voiceData == \"\") {\n return\n }\n\n if (msg.messageData == \"\" && msg.voiceData != \"\") {\n msg.messageData = \"\"\n }\n\n var notifData = truncate(msg.messageData, 140);\n\n Store.addNotification({\n title: msg.user,\n message: notifData,\n type: \"success\",\n insert: \"top\",\n container: \"top-right\",\n animationIn: [\"animate__animated\", \"animate__fadeIn\"],\n animationOut: [\"animate__animated\", \"animate__fadeOut\"],\n dismiss: {\n duration: 2500,\n onScreen: false\n }\n });\n\n this.setState((previousState) => {\n return {\n messages: GiftedChat.append(previousState.messages, {\n _id: Math.round(Math.random() * 1000000),\n text: msg.messageData,\n createdAt: new Date(),\n user: {\n _id: msg.id,\n name: msg.user,\n // avatar: 'https://facebook.github.io/react/img/logo_og.png',\n },\n }),\n };\n });\n }\n\n\n renderBubble(props) {\n return (\n \n );\n }\n\n componentDidMount(): void {\n console.log(\"Chat window mounted\");\n }\n\n renderFooter(props) {\n if (this.state.typingText) {\n return (\n \n \n {this.state.typingText}\n \n \n );\n }\n return null;\n }\n\n\n\n routerWillLeave(nextLocation) {\n return false;\n }\n\n render() {\n\n return (\n <>\n \n\n\n \n );\n }\n}","import React, { Component } from 'react';\nimport { ActivityIndicator, StyleSheet, SafeAreaView, Image, Button, TextInput, View } from 'react-native';\nimport { StatusBar } from 'expo-status-bar';\nimport Login from './Login';\nimport SignUp from './SignUp';\nimport Play from './Play';\nimport { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs';\nimport { styles, styleTheme } from \"../themes/styles\"\nimport { storeCache, getCache } from '../utils/cacheStore'\nimport { serverURL } from '../constants/serverURL'\nimport UserAccount from './UserAccount';\nimport PlayerRankings from './PlayerRankings';\nimport Game from './Game';\nimport GameMenu from './GameMenu';\nimport ChatWindow from './ChatWindow';\nimport GameLocal from './GameLocal';\n\n\n\nconst Tab = createMaterialTopTabNavigator();\n\n\nexport default class GameScreen extends Component {\n constructor(props) {\n super(props);\n this.state = {\n chatTitle: \"Chat\"\n }\n this.setChatTitle = this.setChatTitle.bind(this);\n }\n\n storeToken(loginResponse) {\n storeCache('token', loginResponse.token)\n };\n\n handleAuthCheckResponse(response) {\n if (response.status != 200) {\n this.setState({ showForm: true });\n console.log(\"Auth check failed: \", response);\n response.json().then(data => this.storeToken(\"\"));\n this.props.navigation.navigate('Login', {})\n this.setState({\n errorText: \"\",\n })\n }\n };\n\n authCheck() {\n this.setState({ showForm: false });\n getCache(\"token\").then((value: string) => {\n if (value == '') {\n return Promise.reject(\"do not auth check an empty token\")\n }\n\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': value },\n body: JSON.stringify({})\n };\n return requestOptions\n\n }).then((requestOptions) => {\n console.log(\"Req options: \", requestOptions)\n return fetch(serverURL + '/user/verify/token', requestOptions)\n }).then((response: Response) => {\n this.handleAuthCheckResponse(response)\n }).catch(() => {/* false */\n\n })\n\n };\n\n componentDidMount() {\n\n this.authCheck()\n\n }\n\n setChatTitle(title: string) {\n this.setState({\n chatTitle: title,\n });\n }\n\n render() {\n\n\n return (\n (\n \n \n\n \n {this.props.route.params.online == true &&\n } />\n }\n \n\n \n \n \n )\n )\n }\n}\n\n","import React, { Component } from 'react';\nimport { ActivityIndicator, Platform, View, Image, Button, Text, TextInput, TouchableHighlight } from 'react-native';\n//import CheckBox from '@react-native-community/checkbox';\nimport { StatusBar } from 'expo-status-bar';\nimport { styles, styleTheme } from '../themes/styles'\nimport { darkStyleTheme } from '../themes/darkTheme';\nimport { storeCache, getCache } from '../utils/cacheStore'\nimport {serverURL} from '../constants/serverURL'\nimport { Icon } from 'react-native-elements'\n\nfunction ValidateEmail(inputText) {\n console.log(\"Input text: \", inputText);\n var mailformat = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n if (inputText.match(mailformat)) {\n return true;\n }\n else {\n return false;\n }\n}\n\nexport default class ChangePasswordForm extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n fullname: \"\",\n usernames: \"\",\n userPassword: \"\",\n confirmPassword: \"\",\n userEmail: \"\",\n showForm: true,\n agree: false,\n passwordStyle: styles.textInputIconStyle,\n passwordPlaceholder: \"Password\",\n showPassword: false,\n passwordIcon: \"eye-slash\",\n confirmPasswordStyle: styles.textInputIconStyle,\n confirmPasswordPlaceholder: \"Confirm Password\",\n showConfirmPassword: false,\n confirmPasswordIcon: \"eye-slash\",\n errorText: \"\",\n successText: \"\",\n }\n };\n\n componentDidMount() {\n console.log(this.props.activation_key)\n }\n\n setName(text: string) {\n this.setState({\n fullname: text\n });\n };\n\n setEmail(text: string) {\n this.setState({\n userEmail: text\n });\n };\n\n setUsername(text: string) {\n this.setState({\n username: text\n });\n };\n\n setConfirmPassword(text: string) {\n this.setState({\n confirmPassword: text\n });\n };\n\n setPassword(text: string) {\n this.setState({\n userPassword: text\n });\n };\n\n storeToken(loginResponse) {\n console.log(Platform.OS)\n storeCache('token', loginResponse.token)\n\n };\n\n handleResponse(response) {\n if (response.status == 200) {\n this.setState({ showForm: true });\n this.setState({\n successText: \"Successfully changed user password\",\n errorText: \"\",\n })\n setTimeout(()=> this.props.navigation.navigate('Login', {}), 5000)\n }\n else if (response.status == 401) {\n console.log(\"Unable to create user\")\n this.setState({ showForm: true });\n this.setState({\n errorText: \"Error resetting password.\",\n successText: \"\",\n })\n setTimeout(() => this.setState({\n errorText: \"\",\n successText: \"\",\n }), 5000)\n } else {\n console.log(\"Unable to create user\")\n this.setState({ showForm: true });\n this.setState({\n errorText: \"Error resetting password\",\n successText: \"\",\n })\n setTimeout(() => this.setState({\n errorText: \"\",\n successText: \"\",\n }), 5000)\n }\n };\n\n togglePasswordShow() {\n if (this.state.showPassword) {\n this.setState({ passwordIcon: \"eye-slash\", showPassword: false })\n } else {\n this.setState({ passwordIcon: \"eye\", showPassword: true })\n }\n };\n\n toggleConfirmPasswordShow() {\n if (this.state.showConfirmPassword) {\n this.setState({ confirmPasswordIcon: \"eye-slash\", showConfirmPassword: false })\n } else {\n this.setState({ confirmPasswordIcon: \"eye\", showConfirmPassword: true })\n }\n };\n\n changePassword() {\n if (this.state.userPassword.length < 6) {\n this.setState({\n errorText: \"Password too short.\",\n })\n return\n }\n\n if (this.state.userPassword != this.state.confirmPassword) {\n this.setState({\n errorText: \"Confirmation password does not match.\",\n })\n return\n }\n\n this.setState({ showForm: false });\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n identifier: this.props.activation_key, password:\n this.state.userPassword, email: this.state.userEmail, name: this.state.fullname\n })\n };\n fetch(serverURL + '/user/change-password', requestOptions)\n .then(response => this.handleResponse(response))\n };\n\n transitionToLogin() {\n this.props.navigation.navigate('Login', { navigation: this.props.navigation })\n };\n\n openTermsAndConditions() {\n\n };\n\n setToggleCheckBox(value) {\n this.setState({ agree: value })\n };\n\n renderForm() {\n\n return (\n\n\n \n this.setPassword(text)}\n style={this.state.passwordStyle}\n secureTextEntry={!this.state.showPassword}\n autoCompleteType='password'\n placeholderTextColor={styleTheme.placeholderTextColor}\n placeholder={this.state.passwordPlaceholder} />\n\n this.togglePasswordShow()}\n name={this.state.passwordIcon} type='font-awesome' color={styleTheme.placeholderTextColor} />\n\n \n\n \n this.setConfirmPassword(text)}\n style={this.state.confirmPasswordStyle}\n secureTextEntry={!this.state.showConfirmPassword}\n autoCompleteType='password'\n placeholderTextColor={styleTheme.placeholderTextColor}\n placeholder={this.state.confirmPasswordPlaceholder} />\n\n this.toggleConfirmPasswordShow()}\n name={this.state.confirmPasswordIcon} type='font-awesome' color={styleTheme.placeholderTextColor} />\n\n \n\n\n this.changePassword()}\n title=\"Change Password\"\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Click here to change password\" />\n\n \n I dont want to reset\n this.transitionToLogin()}>Go to Login\n \n\n \n {this.state.successText}\n {this.state.errorText}\n \n )\n }\n\n renderSpinner() {\n return (\n \n \n \n )\n }\n\n render() {\n\n if (this.state.showForm) {\n return this.renderForm()\n } else {\n return this.renderSpinner()\n }\n\n }\n}\n","import React, { Component } from 'react';\nimport { ActivityIndicator, StyleSheet, View, Image, Button, TextInput } from 'react-native';\nimport { StatusBar } from 'expo-status-bar';\nimport ChangePasswordForm from './ChangePasswordForm'\nimport { styles, styleTheme } from \"../themes/styles\"\n\nexport default class ChangePassword extends Component {\n\n componentDidMount(): void {\n console.log(this.props.route.params.key)\n }\n render() {\n return (\n\n \n \n \n\n \n \n \n\n \n )\n }\n}\n\n","import React, { Component } from 'react';\nimport { ActivityIndicator, Platform, StyleSheet, View, Image, Button, Text, TextInput, TouchableHighlight } from 'react-native';\nimport { StatusBar } from 'expo-status-bar';\nimport { styles, styleTheme } from '../themes/styles'\nimport { darkStyleTheme } from '../themes/darkTheme';\nimport { storeCache, getCache } from '../utils/cacheStore'\nimport { serverURL } from '../constants/serverURL'\nimport { Icon } from 'react-native-elements'\n\nexport default class PasswordResetForm extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n userIdentity: \"\",\n userPassword: \"\",\n showForm: true,\n passwordStyle: styles.textInputIconStyle,\n passwordPlaceholder: \"Password\",\n showPassword: false,\n passwordIcon: \"eye-slash\",\n errorText: \"\",\n successText: \"\",\n }\n };\n\n setUsername(text: string) {\n this.setState({\n userIdentity: text\n });\n };\n\n storeToken(loginResponse) {\n storeCache('token', loginResponse.token)\n };\n\n handleResponse(response) {\n if (response.status == 200) {\n this.setState({ showForm: true });\n console.log(\"successfully logged in\");\n response.json().then(data => this.storeToken(data));\n this.setState({\n errorText: \"\",\n successText: \"Reset instructions were sent to your email\"\n })\n setTimeout(() => {\n this.setState({\n errorText: \"\",\n successText: \"\",\n });\n this.props.navigation.navigate('Login', {})\n }, 5000)\n }\n else {\n this.setState({ showForm: true });\n this.setState({\n errorText: \"Error resetting password, please try again later or email support@jamaicanstyledominoes.com\",\n })\n setTimeout(() => this.setState({\n errorText: \"\",\n successText: \"\",\n }), 5000)\n }\n };\n\n\n togglePasswordShow() {\n console.log(\"PRESS\");\n\n if (this.state.showPassword) {\n this.setState({ passwordIcon: \"eye-slash\", showPassword: false })\n } else {\n this.setState({ passwordIcon: \"eye\", showPassword: true })\n }\n };\n\n handleAuthCheckResponse(response) {\n if (response.status == 200) {\n this.setState({ showForm: true });\n console.log(\"successfully logged in\");\n response.json().then(data => this.storeToken(data));\n this.props.navigation.navigate('HomeMenu', {})\n this.setState({\n errorText: \"\",\n })\n } else {\n this.setState({ showForm: true });\n }\n\n };\n\n authCheck() {\n this.setState({ showForm: false });\n getCache(\"token\").then((value: string) => {\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'jsd-auth': value },\n body: JSON.stringify({})\n };\n return requestOptions\n\n }).then((requestOptions) => {\n console.log(\"Req options: \", requestOptions)\n return fetch(serverURL + '/user/verify/token', requestOptions)\n }).then((response: Response) => {\n this.handleAuthCheckResponse(response)\n })\n\n };\n\n resetPassword() {\n this.setState({ showForm: false });\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ identifier: this.state.userIdentity, })\n };\n fetch(serverURL + '/user/reset-password', requestOptions)\n .then(response => this.handleResponse(response))\n };\n\n transitionToLogin() {\n this.props.navigation.navigate('Login', {})\n };\n\n\n\n componentDidMount() {\n\n this.authCheck()\n\n }\n\n renderForm() {\n return (\n this.setUsername(text)}\n placeholder=\"Email\"\n autoCompleteType='username'\n placeholderTextColor={styleTheme.placeholderTextColor}\n style={styles.textInputStyle} />\n\n\n this.resetPassword()}\n title=\"Reset Password\"\n color={styleTheme.primaryButtonColor}\n accessibilityLabel=\"Click here to reset password\" />\n\n\n \n {

}
\n {

}I remember my password
\n this.transitionToLogin()}>{

}Go to Login
\n
\n\n\n \n {this.state.errorText}\n {this.state.successText}\n \n\n
)\n }\n\n renderSpinner() {\n return (\n \n \n \n )\n }\n\n render() {\n\n if (this.state.showForm) {\n return this.renderForm()\n } else {\n return this.renderSpinner()\n }\n\n }\n}\n","import React, { Component } from 'react';\nimport { ActivityIndicator, StyleSheet, View, Image, Button, TextInput } from 'react-native';\nimport { StatusBar } from 'expo-status-bar';\nimport {styles, styleTheme} from \"../themes/styles\"\nimport PasswordResetForm from './PasswordResetForm';\n\nexport default class PasswordReset extends Component {\n constructor(props){\n super(props);\n }\n render() {\n return (\n\n \n \n \n\n \n \n \n \n \n )\n }\n}\n\n","\n\n// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://cra.link/PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === \"localhost\" ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === \"[::1]\" ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n const isEnvProduction = process.env.NODE_ENV === \"production\";\n if (isEnvProduction && \"serviceWorker\" in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener(\"load\", () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n \"This web app is being served cache-first by a service \" +\n \"worker. To learn more, visit https://cra.link/PWA\"\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n console.log(\"Successfully Registered service worker\");\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then((registration) => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === \"installed\") {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n \"New content is available and will be used when all \" +\n \"tabs for this page are closed. See https://cra.link/PWA.\"\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log(\"Content is cached for offline use.\");\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch((error) => {\n console.error(\"Error during service worker registration:\", error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { \"Service-Worker\": \"script\" },\n })\n .then((response) => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get(\"content-type\");\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf(\"javascript\") === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then((registration) => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n \"No internet connection found. App is running in offline mode.\"\n );\n });\n}\n\nexport function unregister() {\n if (\"serviceWorker\" in navigator) {\n navigator.serviceWorker.ready\n .then((registration) => {\n registration.unregister();\n })\n .catch((error) => {\n console.error(error.message);\n });\n }\n}","import { StatusBar } from 'expo-status-bar';\nimport React from 'react';\nimport { Platform, StyleSheet, Text } from 'react-native';\nimport Login from './src/components/Login';\nimport SignUp from './src/components/SignUp';\nimport HomeMenu from './src/components/HomeMenu';\nimport GameScreen from './src/components/GameScreen';\nimport { NavigationContainer } from '@react-navigation/native';\nimport { createStackNavigator } from '@react-navigation/stack';\nimport { SafeAreaProvider, SafeAreaView } from 'react-native-safe-area-context';\nimport ChangePassword from './src/components/ChangePassword';\nimport PasswordReset from './src/components/PasswordReset';\nimport * as serviceWorkerRegistration from \"./src/serviceWorkerRegistration\";\nimport { ReactNotifications } from 'react-notifications-component'\nimport { startFileServer } from './src/utils/localServer';\n\n// if (Platform.OS == \"android\" || Platform.OS == \"ios\"){\n// startFileServer();\n// }\n\nconst Stack = createStackNavigator();\n\nconst config = {\n screens: {\n PasswordReset: 'forgot-password',\n Login: 'login',\n SignUp: 'register',\n ChangePassword: 'change-password/:key'\n },\n};\n\nconst linking = {\n prefixes: ['https://jamaicanstyledominoes.com',],\n config,\n};\n\nexport default function App() {\n return (\n \n \n Loading...}>\n \n \n\n \n\n \n\n \n\n \n\n \n\n \n \n \n \n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n backgroundColor: '#fff',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nserviceWorkerRegistration.register();\n","import { registerRootComponent } from 'expo';\n\nimport App from './App';\n\n// registerRootComponent calls AppRegistry.registerComponent('main', () => App);\n// It also ensures that whether you load the app in Expo Go or in a native build,\n// the environment is set up appropriately\nregisterRootComponent(App);\n","import {decode, encode} from 'base-64';\n\nif (!global.btoa) { global.btoa = encode }\n\nif (!global.atob) { global.atob = decode }\n\nfunction parseJwt (token) {\n if (token == undefined){\n return {}\n }\n var base64Url = token.split('.')[1];\n if (base64Url == undefined){\n return {}\n }\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n var jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n\n return JSON.parse(jsonPayload);\n};\n\nexport {parseJwt}"],"sourceRoot":""}