PageSourceSearch

https://www.friv4school.com/school.html

html friv4school.com collected 2026-10-01 15:19:50 UTC 856,906 bytes, 12,270 lines download raw bytes

1<!-- This file, related code, assets, styling and indicia are Copyright (c) Friv.com 2006-2026. Unauthorised reproduction in whole or in part is strictly prohibited. Friv is a registered trademark. All rights reserved. -->
2
3<!DOCTYPE html>
4<html lang="zxx" translate="no">
5
6<head>
7    <meta charset="utf-8">
8    <title>Friv® | FRIV4SCHOOL.COM | A Safe Place For Students To Play!</title> <!-- Friv® | FRIV4SCHOOL.COM | A Safe Place For Students To Play!   ---   Friv® | FRIV4SCHOOL.COM | 🎁 Play Christmas Games!     ---     Friv® | FRIV4SCHOOL.COM 2025 - Play Games!   -->
9    <meta content="index,follow" name=robots>
10    <link rel="canonical" href="https://www.friv4school.com/school.html">
11    <link href=z/assets/img/frivIcon.png rel="shortcut icon">
12    <meta content="A safe place to play the very best free games at school or at home. No ads, no inappropriate content, no outward links, no nagging, unblocked!" name=description>
13    <meta content="width=device-width,initial-scale=1" name=viewport>
14    <link href=https://fonts.googleapis.com rel=preconnect>
15    <link href=https://www.google-analytics.com rel=preconnect>
16    <link href=https://www.googletagmanager.com rel=preconnect>
17    <link href=https://partner.googleadservices.com rel=preconnect>
18    <link href=https://www.googleadservices.com rel=preconnect>
19    <link href=https://googleads.g.doubleclick.net rel=preconnect>
20    <link href=https://adservice.google.com rel=preconnect>
21    <link href=https://www.google.com rel=preconnect>
22    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
23    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
24    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
25    <link rel="icon" type="image/png" sizes="96x96 120x120 128x128 152x152 167x167 180x180 196x196 228x228" href="/favicon-school-large.png">
26    <link rel="icon" type="image/svg+xml" sizes="any" href="/favicon-school.svg">
27    <link rel="manifest" href="/site.webmanifest">
28    <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#600090">
29    <meta name="msapplication-TileColor" content="#600090">
30    <meta name="theme-color" content="#600090">
31    <link rel="preload" href="z/assets/fonts/frivFont.woff" as="font" type="font/woff" crossorigin>
32    
32<script async src="z/assets/scripts/consent.js"></script>
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47    
47<script type="application/ld+json">
48        {
49            "@context": "http://schema.org",
50            "@type": "Organization",
51            "name": "Friv",
52            "url": "https://www.friv.com",
53            "logo": "https://www.friv.com/z/assets/img/frivOrgLogo.svg",
54            "sameAs": [
55                "https://www.facebook.com/Frivcom-121239227905954/",
56                "https://www.instagram.com/friv/",
57                "https://www.youtube.com/c/friv",
58                "https://www.threads.net/@friv/",
59                "https://www.tiktok.com/@friv",
60                "https://x.com/friv"
61            ]
62        }
63
64    </script>
64
65
66    <meta property="og:title" content="Friv : Free Games!">
67    <meta property="og:site_name" content="Friv.com">
68    <meta property="og:url" content="https://www.friv.com/">
69    <meta property="og:description" content="A safe place to play free online games on your computer, phone or tablet! No downloads. No in-app purchases. No nagging. Just great unblocked games!">
70    <meta property="og:type" content="website">
71    <meta property="og:image" content="https://www.friv.com/z/assets/img/genericSocialBanner.jpg"> <!-- 1200 x 628 -->
72    <meta property="fb:app_id" content="307423069337689">
73
74    <meta name="x:card" content="summary_large_image">
75    <meta name="x:site" content="@friv">
76    <meta name="x:creator" content="@friv">
77    <meta name="x:title" content="Friv : Free Games!">
78    <meta name="x:description" content="A safe place to play free online games on your computer, phone or tablet! No downloads. No in-app purchases. No nagging. Just great unblocked games!">
79    <meta name="x:image" content="https://www.friv.com/z/assets/img/genericSocialBanner.jpg">
80
81    <!-- analytics -->
82    
82<script async src="https://www.googletagmanager.com/gtag/js"></script>
82
83    
83<script>
84        var scriptsLoadable = false;
85        var testVer = false;
86        if (window.location.href.indexOf("test") > -1) {
87            testVer = true;
88        }
89        var monitor = false;
90        if (window.location.href.indexOf("monitor") > -1) {
91            monitor = true;
92        }        
93    </script>
93
94
95    
95<script src="z/assets/scripts/ads/xxx.js"></script>
95
96
97    <style>
98        @font-face {
99            font-family: frivFont;
100            font-display: swap;
101            src: url(z/assets/fonts/frivFont.woff);
102        }
103
104        body,
105        html {
106            background: linear-gradient(indigo, indigo, navy);
107            font-family: frivFont, arial, helvetica, sans-serif;
108            font-size: 10px;
109            /* 10px fine adjustment */
110            font-weight: 650;
111            text-align: center;
112            color: #fff;
113            padding: 0;
114            margin: 0;
115            -webkit-tap-highlight-color: transparent;
116            user-select: none;
117            /* Standard */
118            -moz-user-select: none;
119            /* Firefox */
120            -webkit-touch-callout: none;
121            /* iOS Safari */
122            -webkit-user-select: none;
123            /* Safari */
124        }
125
126        a:link,
127        #manageRevoke {
128            color: #aaf;
129            text-decoration: none;
130            transition: 1s;
131            cursor: pointer;
132        }
133
134        a:visited {
135            color: #aaf;
136            text-decoration: none;
137        }
138
139        a:hover,
140        #manageRevoke:hover {
141            color: #7ff;
142            text-decoration: none;
143        }
144
145        h1 {
146            font-size: 2vmax;
147        }
148
149        h2 {
150            font-size: 1.7vmax;
151            margin-top: -2vh;
152            margin-bottom: -3vh;
153        }
154
155        h3 {
156            font-size: 1.8vmax;
157            margin-top: -1.4vmax;
158            margin-bottom: -1.4vmax;
159        }
160
161        #feedbackIntroText {
162            font-size: 1.5vmax;
163        }
164
165        h3 {
166            font-size: 3vmax;
167        }
168
169        ::-webkit-scrollbar {
170            width: 20px;
171            background-image: linear-gradient(#003, indigo, #003);
172        }
173
174        ::-webkit-scrollbar-thumb {
175            background-image: linear-gradient(yellow, forestGreen);
176            border-radius: 10px;
177            box-shadow: inset 2px 2px 2px hsla(0, 0%, 100%, .7), inset -2px -2px 2px rgba(0, 0, 0, .5);
178        }
179
180        ::-webkit-scrollbar-thumb:hover {
181            background-image: linear-gradient(yellow, lime);
182        }
183
184        #lcp {
185            position: fixed;
186            top: 0;
187            left: 0;
188            z-index: -999;
189            pointer-events: none;
190            color: rgba(255, 255, 255, 0.05);
191            font-family: sans-serif;
192            width: 100vw;
193            font-size: 25vmax;
194        }
195
196        #lcp::after {
197            content: ". . . . . . . . . . . . . . . . . . . . . . .";
198        }
199
200        #logoContainer {
201            z-index: 10;
202            height: 60vw;
203            max-height: 54vh;
204            max-width: 100vw;
205            display: block;
206            position: relative;
207            overflow: hidden;
208            background: linear-gradient(.48turn, #40a 30%, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0));
209        }
210
211        #logoLeftShine {
212            position: absolute;
213            z-index: 20;
214            pointer-events: none;
215            width: 30vmax;
216            height: 30vmax;
217            transform: rotate(-60deg);
218            left: -20vmax;
219            top: -10vmax;
220            background-image: linear-gradient(white, rgba(255, 255, 255, 0));
221        }
222
223        #logoRightShadow {
224            position: absolute;
225            pointer-events: none;
226            width: 30vmax;
227            height: 30vmax;
228            transform: rotate(30deg);
229            right: -10vmax;
230            top: -20vmax;
231            background-image: linear-gradient(black, rgba(0, 0, 0, 0));
232        }
233
234        #logoLensFlareA,
235        #logoLensFlareB {
236            position: absolute;
237            z-index: 20;
238            background-color: rgba(255, 255, 255, 0.08);
239            border-radius: 50%;
240            pointer-events: none;
241            left: 2vw;
242            top: 2vw;
243            height: 4vw;
244            width: 4vw;
245        }
246
247        #logoLensFlareB {
248            background-color: rgba(255, 255, 255, 0.06);
249            left: 3vw;
250            top: 4vw;
251            height: 7vw;
252            width: 7vw;
253        }
254
255        #logo {
256            max-width: 100vw;
257            height: 60vw;
258            max-height: 50vh;
259            transform: rotate(-2deg);
260            cursor: pointer;
261            background-size: contain;
262            background-position: center center;
263            background-repeat: no-repeat;
264            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='300' height='225' viewB
264ox='0 0 79.4 59.5'%3E%3Cdefs%3E%3ClinearGradient id='a'%3E%3Cstop offset='0'/%3E%3Cstop offset='.9'/%3E%3Cstop offset='1' stop-color='%23fff'/%3E%3C/linearGradient%3E%3ClinearGradient xlink:href='%23a' id='c' x1='194.3' x2='71' y1='93.7' y2='-12.5' gradientTransform='matrix(.33043 0 0 .3305 24 76.9)' gradientUnits='userSpaceOnUse'/%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeFlood flood-color='%23000' flood-opacity='.5' result='flood'/%3E%3CfeComposite in='flood' in2='SourceGraphic' operator='in' result='composite1'/%3E%3CfeGaussianBlur in='composite1' result='blur' stdDeviation='2'/%3E%3CfeOffset dx='5' dy='5' result='offset'/%3E%3CfeComposite in='SourceGraphic' in2='offset' result='composite2'/%3E%3C/filter%3E%3C/defs%3E%3Cg transform='rotate(-1 -4144.1 2413.4) scale(1.15007)'%3E%3Cpath fill='%230f0' d='M227.4-21.7a4 4 0 0 0-4.1 4 4 4 0 0 0 4 4 4 4 0 0 0 4-3.9 4 4 0 0 0-3.9-4.1zm-11.1-.1-21.8 10.5a137 137 0 0 1-4.4 77.2 94.5 94.5 0 0 1-8.6-54.3l-8.2 2.5.6-9.8-2.8.7a18 18 0 0 0 5-13c.1-8.6-5.3-15.2-14-14.6v-.1c-10 .6-15.2 11-14.5 17.5.2 6.3 3.6 11.4 8.5 13.5l-3.8.9c-.2 19.9-.3 39.8-2 58.8a52 52 0 0 0-19.7-8c39.5-21.8 1.1-65-11.3-74l1.5-5.4c-18.5.4-33.6 3.3-48.5 9.3C70.2.2 68.5 8.1 67.7 17.7l-7.4 1.2c-.8 5.5-1 11-.8 16.5l7.5-1.1a217 217 0 0 0 10 66.5l22.6-11.9A132.3 132.3 0 0 1 84.3 32c6-.6 11.3-1 16-1.3.2-5.7.9-11.8 1.7-17.3-6 .5-12 1.7-17.7 2.3.1-4 .4-8.5.7-12.5a83 83 0 0 1 27.4-5 174.3 174.3 0 0 0-6.8 49.8h-6.3l1.7 16.4 5.6 1.5 2 18.1 15.1-2.6c-1-3.8-1.9-7.7-2.5-11.5a32 32 0 0 1 21 20.5l5.7-2.9c-.5 3-1 6-1.7 9l25.6-8.3c-.4-9-.5-18.2-.4-27.3a93.1 93.1 0 0 0 18.9 29.8C213.8 63 219 23 216.3-21.8zm-91.1 32.2c7 7.7 21.1 34.8-5.5 37.4-.2-13.2 1.8-26 5.5-37.4z' filter='url(%23b)' transform='matrix(.33043 0 0 .3305 24 76.9)'/%3E%3Cpath fill='%230d0' d='M49.3 82.2a.9.9 1 0 0-.9.9.9.9 1 0 0 .9.9.9.9 1 0 0 .9-.9.9.9 1 0 0-.9-.9zm31.4 2.4a1.5 1.5 1 0 0-1.5 1.5 1.5 1.5 1 0 0 1.5 1.6 1.5 1.5 1 0 0 1.5-1.5 1.5 1.5 1 0 0-1.5-1.6zM52 85.7a1.6 1.6 1 0 0-1.6 1.6 1.6 1.6 1 0 0 1.6 1.6 43.7 43.7 1 0 1-.1-1.4l1.6-.2a1.6 1.6 1 0 0-1.5-1.6zm25 1a1.3 1.3 1 0 0-1.3 1.2 1.3 1.3 1 0 0 1.2 1.3 1.3 1.3 1 0 0 1.3-1.2 1.3 1.3 1 0 0-1.3-1.3zm17.5 1a2 2 1 0 0-2.1 2 2 2 1 0 0 1.8 2l.7-4a2 2 1 0 0-.4 0zm-35.3 0a57.6 57.6 1 0 0-.2 3.6 1.8 1.8 1 0 0 .2 0 1.8 1.8 1 0 0 1.8-1.8 1.8 1.8 1 0 0-1.8-1.9zM84 88a2.5 2.5 1 0 0-1 2 2.5 2.5 1 0 0 1.7 2.4A31.2 31.2 1 0 1 84 88zm-37.6 1.5a71.7 71.7 1 0 0 3.2 20.6l7.5-4A43.7 43.7 1 0 1 52.2 91a12 12 1 0 0-3.5.5 2.5 2.5 1 0 0-2.4-1.9zm33.1 2.1a2.5 2.5 1 0 0-2.5 2 9 9 1 0 0-.4 0 9 9 1 0 0-2.4.2l-.4 5.5a17.2 17.2 1 0 0-6.5-2.7l1.5-1A7 7 1 0 0 65 94a1.6 1.6 1 0 0-1.4-1 1.6 1.6 1 0 0-1.5 1.4 7 7 1 0 0-1.1.4 12 12 1 0 0-2.6-2.1H57l.5 5.4 1.9.5.6 6 5-.9a39 39 0 0 1-.8-3.8 10.6 10.6 1 0 1 7 6.8l1.8-1-.5 3 8.4-2.8c-.1-3-.2-6-.1-9a30.8 30.8 1 0 0 6.2 9.9c2.8-3.3 4.8-7 6.2-11.2a5.4 5.4 1 0 0-4.5-2.5 5.4 5.4 1 0 0-.2 0 45.3 45.3 1 0 1-1.5 5.5 31.2 31.2 1 0 1-1.7-4.4 5.4 5.4 1 0 0-1.9 2.7 9 9 1 0 0-1.7-1.7 2.5 2.5 1 0 0 .3-1 2.5 2.5 1 0 0-2.5-2.6z'/%3E%3Cpath fill='%23fff' fill-opacity='.2' d='M99.2 69.7a1.3 1.3 1 0 0-1.4 1.3 1.3 1.3 1 0 0 1.3 1.4 1.3 1.3 1 0 0 1.4-1.3 1.3 1.3 1 0 0-1.3-1.4zm-3.7 0-7.2 3.5a45.3 45.3 1 0 1 1.1 11.3 37.1 19 1 0 0 6.2-2.6c.2-4 .2-8 0-12.2zm-17.9-.3c-3.3.2-5 3.6-4.8 5.8 0 2 1.2 3.7 2.8 4.4l-1.2.3-.1 7.4a37.1 19 1 0 0 9.5-1.3 31.2 31.2 1 0 1 .2-5.3l-2.7.9.2-3.3-1 .3a6 6 1 0 0 1.7-4.3c0-2.9-1.7-5-4.6-4.9zm-13.6 1c-6.2.2-11.1 1.2-16 3.2-.8 3.4-1.3 6-1.6 9.1l-1 .2a37.1 19 1 0 0 11.8 3.5l.5-5c-2 0-4 .5-5.8.7l.2-4.1a27.4 27.4 1 0 1 9-1.7 57.6 57.6 1 0 0-1.9 10.4 37.1 19 1 0 0 4.7.5 38 38 0 0 1 1.5-6.9 15 15 0 0 1 3.3 7.2 37.1 19 1 0 0 4.2-.1c-.5-6.5-6.8-13.2-9.4-15.1Z'/%3E%3Cpath fill='none' stroke='url(%23c)' stroke-linejoin='round' stroke-width='1.3' d='M65.4 80.3c2.3 2.5 7 11.6-1.8 12.4 0-4.3.6-8.6 1.8-12.4zm12.2-10.9c-3.3.2-5 3.6-4.8 5.8a5 5 0 0 0 2.8 4.5l-1.2.2c0 6.7-.1 13.2-.7 19.5a17 17 1 0 0-6.5-2.6c13-7.2.4-21.5-3.7-24.5l.5-1.8a44.6 44.6 1 0 0-16 3c-.7 3.5-1.3 6-1.6 9.3L44 83c-.3 1.9-.4 3.7-.3 5.5l2.5-.3c0 7.8 1.1 15.1 3.3 22l7.5-4a43.7 43.7 1 0 1-5-18.8l5.2-.5c.1-1.8.3-3.9.6-5.7l-5.9.8.3-4.1a28 28 1 0 1 9-1.7A57.6 57.6 1 0 0 59 92.8h-2.1l.6 5.4 1.8.5.7 6 5-.9a41.3 41.3 1 0 1-.9-3.8 10.6 10.6 1 0 1 7 6.8l1.8-1-.5 3 8.5-2.7c-.2-3-.2-6-.2-9a30.8 30.8 1 0 0 6.2 9.8c7.8-9.2 9.5-22.4 8.6-37.2l-7.2 3.4A45.3 45.3 1 0 1 87 98.6a31.2 31.2 
2641 0 1-3-17.9l-2.7.8.2-3.2-1 .2a6 6 1 0 0 1.7-4.3c.1-2.8-1.7-5-4.6-4.8z'/%3E%3Ccircle cx='78.5' cy='74.2' r='.3' fill='none'/%3E%3Ccircle cx='99.2' cy='71.1' r='1.1' fill='none' stroke='%23000' stroke-width='.9'/%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-opacity='.6' stroke-width='.8' d='M61.4 72.4c-5.2.5-8.7 1.5-11.8 2.6-.5 2.2-.9 4.4-1.1 6.7m26.1-7.6c.6-1.8 1.8-2.8 3.6-3m-15.4 6.1a64 64 0 0 0-1.9 12m15.3-7.5L76 92.3m17.5-19.5-3.1 1.4c.5 2.9.9 6 1 8.7'/%3E%3Cpath fill-opacity='.8' d='M98.8 71.03v-.47h.24l.26.01c.11.01.16.03.2.08.05.05.08.11.07.19 0 .05 0 .09-.03.12a.23.23 0 0 1-.07.08.35.35 0 0 1-.15.06h.01l.07.06c.04.04.07.08.16.23l.06.1.02.03h-.24l-.08-.13-.15-.22c-.04-.04-.06-.05-.14-.05H99v.19l-.01.2h-.2zm.42-.06.08-.01a.1.1 0 0 0 .08-.11c0-.04 0-.06-.03-.09a.1.1 0 0 0-.05-.03h-.18l-.13-.01v.24h.23z'/%3E%3C/g%3E%3C/svg%3E");
265            /* animation: logo 20s 6s ease-in-out infinite, brightFlash 0.2s 12s steps(1), brightFlash 0.2s 45s steps(1), brightFlash 0.2s 80s steps(1); */
266            animation: logo 20s 6s ease-in-out infinite;
267        }
268
269        @keyframes logo {
270            0% {
271                transform: rotate(-2deg);
272            }
273
274            25% {
275                transform: rotate(4deg);
276            }
277
278            50% {
279                transform: rotate(-2deg);
280            }
281
282            75% {
283                transform: rotate(4deg);
284            }
285
286            100% {
287                transform: rotate(-2deg);
288                filter: hue-rotate(360deg);
289            }
290        }
291
292        #logoSpinner {
293            position: absolute;
294            left: -5vw;
295            top: 10%;
296            height: 8vmax;
297            width: 8vmax;
298            background-size: contain;
299            background-position: center center;
300            background-repeat: no-repeat;
301            opacity: 0;
302            pointer-events: none;
303            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='300' width='300'%3E%3Cpolygon points='149,289 199,204 296,183 230,109 241,11 150,50 60,10 70,108 4,183 100,203' style='fill:lime;'/%3E%0A%3C/svg%3E");
304            animation: logoSpinnerX 10s 6s ease-in-out infinite, logoSpinnerY 47s 6s ease-in-out infinite, logoSpinnerZ 20s 5.5s ease-in-out infinite;
305        }
306
307        @media (orientation: portrait) {
308            #logoSpinner {
309                display: none;
310            }
311        }
312
313        @keyframes logoSpinnerX {
314            0% {
315                opacity: 0.5;
316                left: calc(8vw - 5vmax);
317            }
318
319            25% {
320                height: 15vmax;
321                width: 15vmax;
322                opacity: 0.9;
323            }
324
325            50% {
326                opacity: 0.5;
327                left: 84vw;
328                z-index: 5;
329            }
330
331            75% {
332                opacity: 0;
333                height: 6vmax;
334                width: 6vmax;
335            }
336
337            100% {
338                opacity: 0.5;
339                left: calc(8vw - 5vmax);
340            }
341        }
342
343        @keyframes logoSpinnerY {
344            0% {
345                transform: rotate(0deg);
346                top: 10%;
347            }
348
349            33% {
350                transform: rotate(720deg);
351                top: 37%;
352            }
353
354            66% {
355                transform: rotate(-720deg);
356            }
357
358            100% {
359                transform: rotate(0deg);
360                top: 10%;
361            }
362        }
363
364        @keyframes logoSpinnerZ {
365            to {
366                filter: hue-rotate(360deg);
367            }
368        }
369
370        #welcome {
371            position: relative;
372            z-index: 11;
373            color: rgba(255, 100, 255, 1);
374            opacity: 0;
375            font-size: 12vmin;
376            letter-spacing: 2vmin;
377            text-shadow: 1vmin 1vmin 1vmin rgba(0, 0, 0, 0.7);
378            font-family: frivFont, arial, helvetica, sans-serif;
379            margin-top: -20vmin;
380            margin-bottom: 1vh;
381            pointer-events: none;
382            animation: welcomeFadeInOut 10s 3s ease-out forwards;
383        }
384
385        @keyframes welcomeFadeInOut {
386            0% {
387                opacity: 0;
388            }
389
390            30% {
391                opacity: 1;
392            }
393
394            80% {
395                opacity: 1;
396            }
397
398            100% {
399                opacity: 0;
400                filter: hue-rotate(70deg);
401            }
402        }
403
404        .halloweenIcon {
405            position: absolute;
406            z-index: 15;
407            pointer-events: none;
408            bottom: 0;
409            left: 50px;
410            width: 40px;
411            height: 40px;
412            background-size: contain;
413            background-repeat: no-repeat;
414            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='200' height='200' viewBox='0 0 52.9 52.9'%3E%3Cdefs/%3E%3Cdefs%3E%3ClinearGradient id='a'%3E%3Cstop offset='0' stop-color='%23000042'/%3E%3Cstop offset='1'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='94.3' x2='93' y1='-.1' y2='199.8' gradientUnits='userSpaceOnUse' xlink:href='%23a'/%3E%3C/defs%3E%3Cpath fill='url(%23b)' d='M27.3 0C.6.1 1 17.3 0 29c-.3 55.5 0 115.3 0 171h200V84.7C200.3 24.9 154.4 0 107.4 0z' transform='scale(.26458)'/%3E%3Cg transform='translate(13.5 22.3) scale(.21072)'%3E%3Cpath fill='%23381400' stroke='%2328170b' stroke-linecap='round' stroke-linejoin='round' stroke-width='4' d='M32.2-46.3c3-.5 32.2-10.8 32.2-10.8A163 163 0 0068-14.5S52.2-8.8 51.7-9.8c1.3-2.3-18.4-37.3-19.5-36.5z'/%3E%3Cellipse cx='35.3' cy='-36.4' fill='%23401800' stroke='%2328170b' stroke-linecap='round' stroke-linejoin='round' stroke-width='4' rx='17.4' ry='9.6' transform='matrix(.919 -.395 .29 .957 26.4 -3.6)'/%3E%3Cpath fill='%23fdb002' d='M37 122.4c14.3-8.3 32.6-13.1 48.1-5.1a40.3 40.3 0 0022.5 6.3 54.6 54.6 0 0039-14.4 43.8 43.8 0 0014.1-25C165 60 161.8 32 148.8 11a101.1 101.1 0 00-25-27.2C110.7-26.9 87-33 66.4-31.8c-15.3.7-31 2.6-45 8.8C-1.7-12.6-24 4-34.5 28a89.5 89.5 0 00-7.6 38.4c.5 18.8 6.5 36 22.2 49.9a53 53 0 0045.2 9.7c4-1 8-2.1 11.8-3.6z'/%3E%3Cpath fill='maroon' fill-opacity='.3' d='M72.2-32l-6 .2c-10.7.6-21.8 1.7-32.2 4.5C35-19.4 43.8-13 55.3-12 49.5 32.6 74 68.3 91.1 106 79.3 65 51.6 18.9 64.3-12.3c9-1.6 16-6.7 17.8-13 37 31.8 55.8 76.4 34.6 148.8 11-1.5 21.6-7.1 29.8-14.1a43.8 43.8 0 0014.1-25c4.3-24.4 1.1-52.3-11.9-73.3a100.7 100.7 0 00-25-27.2C111.7-26 91.3-32 72-32zM7.5 1.8C5.2 20.7-2.1 35.9.7 58.6c4.2 17.6 18.1 35 27.2 52.5A199.1 199.1 0 017.5 1.7z'/%3E%3Cpath fill='%23fff' fill-opacity='.2' d='M5.9-15a96 96 0 00-40.6 43 89.2 89.2 0 00-7.6 38.4C-42 83.4-37 99-24.6 112-29.6 80.6-13.3 17 6-15z'/%3E%3Cpath fill='none' stroke='%237a0700' stroke-width='4' d='M37 122.4c14.3-8.3 32.6-13.1 48.1-5.1a40.3 40.3 0 0022.5 6.3 54.6 54.6 0 0039-14.4 43.8 43.8 0 0014.1-25C165 60 161.8 32 148.8 11a101.1 101.1 0 00-25-27.2C110.7-26.9 87-33 66.4-31.8c-15.3.7-31 2.6-45 8.8C-1.7-12.6-24 4-34.5 28a89.5 89.5 0 00-7.6 38.4c.5 18.8 6.5 36 22.2 49.9a53 53 0 0045.2 9.7c4-1 8-2.1 11.8-3.6z'/%3E%3Cpath fill='%23fdb002' stroke='%237a0700' stroke-linecap='round' stroke-width='4' d='M-7.9 107.5c43.3 29.9 91 34.7 146.4-3'/%3E%3Cpath stroke='%237a0700' stroke-linecap='round' stroke-linejoin='round' stroke-width='4' d='M-4.7 47c1.5-2.8 49.7-1.7 53.7-.7C55 47.8 28-1 23.6 4.6a90 90 0 00-23.5 39M53.6 66c-2.1-2.9 12-30.4 14.4-30.4a55.8 55.8 0 0120.3 23.8c-13.2.2-24.4 2.9-34.7 6.6zM134.5 27.3c-8-11-18-23.6-34.4-28.3-7.2 15.1-12 30.4-10 46.2 16.6-10.6 33.2-15 49.8-18.7'/%3E%3Cpath stroke='%237a0700' stroke-linecap='round' stroke-linejoin='round' stroke-width='4' d='M7.1 63.1l6.7 6-4.5 12.2C8.2 83.9 29 95.8 30.1 93.7c.5-.4 7.2-15.3 7.2-15.3l12.8 1.4-.6 14.7c13 1.7 26.5.4 37.9-5.8l-4.8-15.2c5.8-1 10.2-2.8 13.8-5.5 1.1 4.7 3 8.5 5.4 11.7a66.4 66.4 0 0021-15.6c-3.4-6-5.8-8.6-10-12.7l10.4-8 10.2 2.8c3.7 12.4 7 29.6-20.5 55.1L108.6 90a52.2 52.2 0 00-20 10.5l4 11.4a97.5 97.5 0 01-43.7 6l1.3-13.9a49.2 49.2 0 00-22.7-1.6l-2.3 8.4a49.5 49.5 0 01-31-35c3.4-5 7.2-9.8 13-12.6z'/%3E%3C/g%3E%3Cpath fill='%23fff' fill-opacity='.1' d='M12.8 17l-4.5-1.6-2 4.3.1-4.7-4.7-.7L6.3 13l-.9-4.6 2.7 3.9 4.1-2.3-2.9 3.8z'/%3E%3Cpath fill='%23ff9' fill-opacity='.3' d='M39 13.5l-2-3.2-3.5 1.7L36 9l-2.8-2.7 3.6 1.4 1.8-3.5-.2 3.9 3.8.6-3.7 1z'/%3E%3Cpath fill='%23fff' fill-opacity='.3' d='M20.4 8.7L17.8 7 16 9.4l.8-3-2.8-1 3-.2.2-3.1L18 5l3-.8L18.7 6z'/%3E%3C/svg%3E");
415            animation: iconPulse 3s infinite;
416        }
417
418        .xmasIcon {
419            position: absolute;
420            z-index: 14;
421            pointer-events: none;
422            bottom: 0;
423            left: 0;
424            width: 100px;
425            height: 66.6px;
426            background-size: contain;
427            background-repeat: no-repeat;
428            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='200' viewB
428ox='0 0 79.4 52.9'%3E%3Cdefs/%3E%3Cg transform='translate(0 -244)'%3E%3Cpath fill='none' stroke='%23000' stroke-opacity='.3' stroke-width='4' d='M45.8 246.7a16 16 0 00-8.7 2.5c-.8.3-1.8.8-2.9 1.6-3.6 2.4-6 6.3-6 10.9-1.2.9-2.3 1.9-3.2 3.1a8.1 8.1 0 00-1.1 7c.2.8.6 1.4 1 2a8.2 8.2 0 00-.7 7.8 8 8 0 0011.3 4 8.1 8.1 0 0016 2.7 8.2 8.2 0 0010.5-12c2-1.6 3.2-4.6 2.7-7.2l-.6-2c.8 0 1.8.1 2.8.4a5 5 0 00.1.9 5 5 0 006.2 3.7 5 5 0 003.7-6.2 5 5 0 00-6.2-3.7 5 5 0 00-.8.3c-6.1-9-15.3-15.7-24-15.8z'/%3E%3Cpath fill='%23d40000' d='M42 247.2c-1 .2-2 .5-2.9 1-7.3 3.3-14.5 10.7-9.8 27.6l32.2 4.1c-4-20 6.7-10.1 11.9-11.6-6.5-13.1-19.9-23.9-31.4-21.1z'/%3E%3Cpath fill='%23f7d6ae' d='M28.6 272.3V262.5l14.4-7.3 16 6.5 1.4 12z'/%3E%3Cpath fill='%23fff' d='M39.9 248.3c-.5 0-1 .2-1.5.4-.3.1-2.1.7-4.2 2-3.6 2.5-6 6.4-6 11-1.2.9-2.3 1.9-3.2 3.1a8.1 8.1 0 00-1.1 7c.2.8.6 1.4 1 2a8.2 8.2 0 00-.7 7.8 8 8 0 0011.3 4 8.1 8.1 0 0016 2.7 8.2 8.2 0 0010.5-12c2-1.6 3.2-4.6 2.7-7.2-.2-.6-.4-1.7-1.3-3.3-.6-.9-1.2-1.5-2-2.2-.9-1-.7-.6-.7-1 .4-6.6-4.5-12-11-14-3-1-6.4-1.2-9.8-.3zm-1 10.3l2.3-.5c4.5-.4 8 0 12.2 2.5a15 15 0 015 4.9c.5 1.8.5 4 0 5.7a10.3 10.3 0 00-7.1-4c-3.1-.3-4.8.4-7.5 1.2-1-.4-3.6-2.5-9.4-1.3-2.5.6-4.4 3-4.5 3a11 11 0 01.3-5.4c1.5-3.2 5.3-5.3 8.8-6.1zm31.8 3.6a5 5 0 00-3.7 6.2 5 5 0 006.2 3.7 5 5 0 003.7-6.2 5 5 0 00-6.2-3.7z'/%3E%3Cpath fill='%23fff' d='M52.2 261.6v.7c-.3.4-1-.2-2.1-.7-2-.9-4.1-.3-4.3-1l.3-.6c1.3-1.1 5.4 0 6 1.6z' class='st2'/%3E%3Cpath fill='%23fffffe' d='M41.7 260.2c-.3-.2-.6-.4-1-.4-1.5-.3-3.4.3-4.6 1.4l-.6.6c-.4.6.2 1.1.6 1 1.2-.6 1.7-1.3 4.3-1.6.7 0 1.3-.1 1.4-.5l-.1-.5z' class='st14'/%3E%3Cpath fill='none' stroke='%23803300' stroke-linecap='round' stroke-width='1.1' d='M37 263.8c1.1-1 2.7-1.2 4 0M46.5 264c1-1 2.7-1.1 4 0'/%3E%3Ccircle cx='-22' cy='270.5' r='3.1' fill='%23ffc2ae' transform='rotate(-13.9)'/%3E%3Cpath fill='none' stroke='%23f55' stroke-linecap='round' stroke-width='1.3' d='M46.6 273.4c-1 1.6-4.6 1.7-5.7 0'/%3E%3C/g%3E%3C/svg%3E");
429        }
430
431        .pulsateIcon {
432            position: absolute;
433            left: 0;
434            background-size: contain;
435            background-repeat: no-repeat;
436            animation: pulsate 2s infinite;
437        }
438
439        @keyframes pulsate {
440            from {
441                filter: contrast(100%);
442                filter: brightness(100%);
443            }
444
445            to {
446                filter: contrast(150%);
447                filter: brightness(150%);
448            }
449        }
450
451        .newIcon {
452            position: absolute;
453            z-index: 15;
454            pointer-events: none;
455            bottom: 0;
456            left: 0;
457            width: 40px;
458            height: 40px;
459            background-size: contain;
460            background-repeat: no-repeat;
461            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 52.9 52.9'%3E%3Cpath d='M53 53V22.3C53 6.6 40.8 0 28.3 0H0v53z' fill='%23f60'/%3E%3Cpath d='M15.9 21.6V3.3L23 21.6 23.4 3M37.1 13.3l-6.5-1.
4616-4.6 17 7.6 2M28.3 17.8l4.6 1M36 23.5L39.2 43l3.3-12 3.5 12 2.7-19.6' fill='none' stroke='%23fff' stroke-width='4'/%3E%3C/svg%3E");
462            opacity: 0;
463            animation: newFlash 0.5s forwards, newFlash 0.5s 5s forwards, newFlash 0.5s 10s forwards;
464        }
465
466        @keyframes newFlash {
467            0% {
468                opacity: 0;
469            }
470
471            10% {
472                opacity: 1;
473            }
474
475            20% {
476                opacity: 0;
477            }
478
479            30% {
480                opacity: 1;
481            }
482
483            40% {
484                opacity: 0;
485            }
486
487            50% {
488                opacity: 1;
489            }
490
491            60% {
492                opacity: 0;
493            }
494
495            70% {
496                opacity: 1;
497            }
498
499            80% {
500                opacity: 0;
501            }
502
503            100% {
504                opacity: 1;
505            }
506        }
507
508        @keyframes iconPulse {
509            to {
510                filter: contrast(200%);
511                filter: brightness(200%);
512            }
513        }
514
515        #dBugBlinker {
516            position: fixed;
517            z-index: 30;
518            background-color: red;
519            top: 0;
520            width: 100%;
521            min-height: 10px;
522            animation: blinker 1s linear infinite;
523            display: none;
524        }
525
526        @keyframes blinker {
527            50% {
528                opacity: 0;
529            }
530        }
531
532        #searchButton {
533            position: absolute;
534            z-index: 20;
535            min-width: 12vmin;
536            min-height: 12vmin;
537            top: -12vh;
538            right: 0;
539            padding: 1vmin;
540            cursor: pointer;
541            opacity: 0.5;
542            transition: 1s;
543            background-size: contain;
544            background-repeat: no-repeat;
545            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 52.9 52.9'%3E%3Cg transform='translate(0 -244)'%3E%3Cpath d='M10.6 244v36.5c0 4.2 1.7 6 5.8 6h36.5V244z' fill-opacity='.5'/%3E%3Ccircle cx='28' cy='260.6' r='10.9' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M36.3 268.9l5.1 5' fill='none' stroke='%23fff' stroke-width='3.2'/%3E%3Cpath d='M39.8 272.3l6.5 6.7' fill='none' stroke='%23fff' stroke-width='5' stroke-linecap='round'/%3E%3Cpath d='M28.3 253.5c-4 0-7.3 3.3-7.3 7.3' fill='none' stroke='%23fff' stroke-width='1.3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/g%3E%3C/svg%3E");
546            animation: searchButtonSlideIn 2s ease-out forwards;
547        }
548
549        #colourSelector {
550            position: absolute;
551            z-index: 20;
552            min-width: 9vmin;
553            min-height: 6vmin;
554            top: 13vmin;
555            right: -13vmin;
556            padding: 1vmin;
557            cursor: pointer;
558            border-radius: 1vmin 0 0 1vmin;
559            background-image: linear-gradient(indigo, navy);
560            opacity: 0.6;
561            transition: 1s;
562            animation: colourSelectorButtonSlideIn 2s 0.5s ease-out forwards;
563        }
564
565        @keyframes searchButtonSlideIn {
566            to {
567                top: 0;
568            }
569        }
570
571        #searchButton:hover {
572            opacity: 1;
573        }
574
575        @keyframes colourSelectorButtonSlideIn {
576            to {
577                right: 0;
578            }
579        }
580
581        #colourSelector:hover {
582            opacity: 1;
583        }
584
585        /* qqq */
586
587        #friv4SchoolFactsContainer,
588        #topPromoTextLink,
589        #bottomPromoTextLink,
590        #performanceAlert {
591            position: relative;
592            border-radius: 1em;
593            margin-left: 7vmin;
594            margin-right: 7vmin;
595            margin-bottom: 5vmin;
596            padding: 2vmin;
597            padding-top: 1vmin;
598            padding-bottom: 1vmin;
599            font-size: 1.7vmax;
600            box-shadow: 20px 20px 10px rgba(0, 0, 0, 0.4);
601            display: none;
602            opacity: 0;
603
604            /* font-weight: normal; */
605        }
606
607        #friv4SchoolFactsContainer {
608            margin-top: 2vh;
609        }
610
611        #topPromoTextLink,
612        #bottomPromoTextLink,
613        #performanceAlert {
614            background: green;
615            opacity: 1;
616        }
617
618        #topPromoTextLink a:link,
619        #topPromoTextLink a:visited,
620        #bottomPromoTextLink a:link,
621        #bottomPromoTextLink a:visited {
622            color: white;
623        }
624
625        #friv4SchoolFactsContents {
626            cursor: pointer;
627        }
628
629        #friv4SchoolFactsThankyou {
630            display: none;
631        }
632
633        #topPromoButtonsContainer {
634            position: absolute;
635            display: none;
636            z-index: 35;
637            top: -10vh;
638            left: 0;
639            font-size: 2vmin;
640            transition: 0.5s;
641            animation: topPromoButtonsContainerAnim 2s 0s ease-out forwards;
642            /* can increase delay to discourage use */
643        }
644
645        @keyframes topPromoButtonsContainerAnim {
646            0% {
647                top: -10vmin;
648            }
649
650            100% {
651                top: 0;
652            }
653        }
654
655        #topPromoButton1,
656        #topPromoButton2 {
657            padding: 1vmin;
658            border-radius: 0 0 1vmin 0;
659            background-color: rgba(0, 0, 0, 0.4);
660            color: rgba(255, 255, 255, 0.7);
661            cursor: pointer;
662            transition: 1s;
663            /* animation: topPromoButtonsAnim 5s ease-out alternate infinite paused; */
664        }
665
666        @keyframes topPromoButtonsAnim {
667            from {
668                background-color: rgba(0, 0, 0, 0.4);
669            }
670
671            to {
672                background-color: rgba(128, 0, 0, 0.5);
673            }
674        }
675
676        #topPromoButton1:hover,
677        #topPromoButton2:hover {
678            color: white;
679            /* background-color: rgba(0, 0, 0, 0.6); */
680            transition: 1s;
681        }
682
683        #searchBoxContainer {
684            position: fixed;
685            z-index: 20;
686            display: none;
687            background-color: #306;
688            width: 100%;
689            height: 100%;
690        }
691
692        #searchBox {
693            position: absolute;
694            top: 50%;
695            transform: translateY(-50%);
696            box-sizing: border-box;
697            width: 100%;
698            padding: 0.5vmax;
699            margin: auto;
700            font-size: 6.2vmin;
701            text-shadow: 0.5vmin 0.5vmin 0 rgba(0, 0, 0, 0.7);
702            background-color: indigo;
703        }
704
705        .searchLetter,
706        .searchLetterAll {
707            display: inline-block;
708            font-family: frivFont;
709            font-size: 3.8vmax;
710            color: white;
711            padding: 0.1vmax;
712            padding-left: 1vmax;
713            padding-right: 1vmax;
714            margin: 0.3vmin;
715            margin-top: 1vmin;
716            border-radius: 1.5vmin;
717            border: 0.5vmin outset brown;
718            cursor: pointer;
719            background: linear-gradient(orange, white, orange, orange, orange, orange, chocolate, brown);
720            box-shadow: 2vmin 2vmin 2vmin rgba(0, 0, 0, 0.4);
721        }
722
723        .searchLetterAll {
724            border: 0.5vmin outset green;
725            background: linear-gradient(lime, white, lime, lime, lime, lime, lime, green, green);
726        }
727
728        #halloweenRemove {
729            color: yellow;
730        }
731
732        #xmasRemove {
733            color: red;
734        }
735
736        #headerSearchResult {
737            font-size: 4vmin;
738            display: none;
739        }
740
741        #frivDaily {
742            padding-top: 100vh;
743        }
744
745        .scroll-animate {
746            /* Initially hide the content by collapsing its height */
747            max-height: 0;
748            overflow: hidden;
749            /* Hide content that overflows the zero height */
750            margin-top: 0;
751            /* Remove initial margins that might take space */
752            margin-bottom: 0;
753            /* Remove initial margins that might take space */
754            padding-top: 0;
755            /* Remove initial padding */
756            padding-bottom: 0;
757            /* Remove initial padding */
758
759            opacity: 0;
760            /* Still start completely transparent for fade-in */
761            transform: translateY(20px);
762            /* Still slide up for effect */
763            visibility: hidden;
764            /* Hide it from screen readers and pointer events */
765
766            /* Transition all properties for a smooth effect */
767            transition: max-height 0.8s ease-out,
768                opacity 0.6s ease-out 0.2s,
769                /* Delay opacity slightly */
770                transform 0.6s ease-out 0.2s,
771                /* Delay transform slightly */
772                margin 0.8s ease-out,
773                padding 0.8s ease-out,
774                visibility 0.8s;
775            /* Transition visibility last */
776        }
777
778        /* Class added when the element is in view */
779        .scroll-animate.visible {
780            overflow: visible;
781            /* Set a large enough max-height to ensure content is fully visible */
782            /* You can use a very large value like 1000px or more, or calculate it with JS */
783            max-height: 39999px;
784            /* Adjust this value if your content is taller */
785
786            /* Restore original margins and padding */
787            margin-top: 40px;
788            margin-bottom: 40px;
789            padding-top: 20px;
790            padding-bottom: 20px;
791
792            opacity: 1;
793            /* Make it fully visible */
794            transform: translateY(0);
795            /* Move it to its original position */
796            visibility: visible;
797            /* Make it visible to screen readers and pointer events */
798        }
799
800        #dropGfx {
801            position: fixed;
802            pointer-events: none;
803            z-index: 30;
804            width: 100vw;
805            max-width: 100vw;
806            height: 100vw;
807            background-size: contain;
808            background-repeat: no-repeat;
809            top: -100vmax;
810            left: 0;
811        }
812
813        @keyframes dropGfx {
814            from {
815                top: -100vmax;
816            }
817
818            to {
819                top: 110vmax;
820                transform: rotate(90deg);
821            }
822        }
823
824        #feedback {
825            font-size: 4.5vmin;
826            font-weight: 700;
827            background-color: rgba(0, 255, 0, 0.5);
828            padding: 3vmin;
829            z-index: 15;
830            display: none;
831        }
832
833        .feedbackInput {
834            display: block;
835            margin: auto;
836            font-family: frivFont;
837            font-size: 4.5vmin;
838            font-weight: 700;
839            border: 1vmin solid lime;
840            border-radius: 1vmin;
841            margin-top: 2vh;
842            width: 90vw;
843        }
844
845        .feedbackInput:focus {
846            outline: none !important;
847            /* prevents blue outline on user select */
848        }
849
850        #twitterBtn {
851            margin-top: 1vh;
852        }
853
854        #shareContainer {
855            /* currently redundant */
856            padding-top: 1vh;
857            padding-bottom: 1vh;
858            background-color: rgba(0, 0, 0, 0.3);
859            font-size: 4vmin;
860            display: none;
861        }
862
863        #shareMessage {
864            padding: 2vmin;
865            font-size: 4vmin;
866            display: none;
867        }
868
869        #visitorNumbers {
870            color: palegoldenrod;
871        }
872
873        #scrollToPlay {
874            margin-top: 20vh;
875            margin-bottom: 80vh;
876            font-size: 4vw;
877            letter-spacing: 2vw;
878            display: none;
879        }
880
881        .blink {
882            animation: blink 0.1s steps(5, start) infinite;
883        }
884
885        @keyframes blink {
886            to {
887                visibility: hidden;
888            }
889        }
890
891        #gamesBlock {
892            margin-bottom: 300vh;
893            opacity: 0;
894            display: none;
895        }
896
897        #copyright {
898            position: relative;
899            font-size: 3.5vmin;
900            font-family: frivFont, arial, helvetica, sans-serif;
901            background-color: rgba(0, 0, 0, .3);
902            padding: 1vmin;
903        }
904
905        .bottomLinks {
906            padding-bottom: 3vh;
907        }
908
909        #achievementSignifier {
910            display: none;
911        }
912
913        #dBugText {
914            opacity: 0.2;
915            font-size: medium;
916        }
917
918        #executionIssueDetectDiv1,
919        #executionIssueDetectDiv2 {
920            position: absolute;
921            height: 15px;
922            width: 80px;
923            top: 0;
924            left: calc(50vw - 80px);
925        }
926
927        #executionIssueDetectDiv2 {
928            left: 50vw;
929        }
930
931        .prmLeft,
932        .prmCentre,
933        .prmRight,
934        #housePrm1,
935        #housePrm2 {
936            display: inline-block;
937            vertical-align: top;
938            /* background-image: linear-gradient(rgba(0, 0, 255, 0.2), rgba(255, 0, 255, 0.2), rgba(0, 0, 255, 0.2)); */
939            margin-right: 30px;
940            margin-bottom: 4px;
941            width: 300px;
942            height: 250px;
943            background-color: rgba(0, 0, 0, 0.2);
944        }
945
946        .prmLeft,
947        .prmCentre,
948        .prmRight {
949            border-style: solid;
950            border-width: 0 0 6px 0;
951            border-color: red;
952        }
953
954        .prmRight {
955            margin-right: 0;
956        }
957
958        /* As per Google advice: https://support.google.com/adsense/answer/9183363#exact&zippy=%2Cexact-size-per-screen-width-example%2Chiding-ads-for-specific-screen-sizes-example */
959        .adslot_2 {
960            width: 530px;
961            height: 250px;
962        }
963
964        .prmCentre {
965            width: 530px;
966            height: 250px;
967            max-height: 250px;
968            max-width: 530px;
969
970            margin: auto;
971            margin-right: 30px;
972
973        }
974
975        #lba {
976            position: relative;
977            background-color: rgba(0, 0, 0, 0.3);
978            max-width: 100vw;
979            min-height: 285px;
980            overflow: hidden;
981            /* margin-bottom: 0.5vh; */
982            padding-bottom: 8px;
983            border-bottom: 1vh solid rgba(0, 0, 0, 0.15);
984        }
985
986        #lbaJokes {
987            display: none;
988            cursor: pointer;
989            position: relative;
990            font-size: 2.1vmax;
991            background-color: rgba(0, 0, 0, 0.3);
992            max-width: 100vw;
993            padding: 0.5vw;
994            border-bottom: 1vh solid rgba(0, 0, 0, 0.15);
995        }
996
997        #lbaTop,
998        #loadingGamesExpander {
999            position: relative;
1000            width: 100%;
1001            font-size: calc(5px + 0.5vmax + 0.5vh);
1002            letter-spacing: 1vw;
1003        }
1004
1005        #lbaTop {
1006            /* margin-top: 2vh; */
1007            padding-top: 8px;
1008            padding-bottom: 8px;
1009            background-color: rgba(0, 0, 0, 0.3);
1010            border-top: 1vh solid rgba(0, 0, 0, 0.15);
1011        }
1012
1013        #loadingGamesExpander {
1014            opacity: 0;
1015            font-size: 4vh;
1016            letter-spacing: 0.5vw;
1017            margin-top: 1vh;
1018            margin-bottom: 0.5vh;
1019            color: red;
1020            -webkit-text-stroke: 0.1vw maroon;
1021            animation: loadingGamesAnim 3.5s ease-in forwards;
1022        }
1023
1024        @keyframes loadingGamesAnim {
1025            0% {
1026                color: red;
1027                -webkit-text-stroke: 0.1vw maroon;
1028            }
1029
1030            15% {
1031                color: orange;
1032                -webkit-text-stroke: 0.1vw brown;
1033            }
1034
1035            30% {
1036                color: yellow;
1037                -webkit-text-stroke: 0.1vw darkgoldenrod;
1038            }
1039
1040            45% {
1041                color: lime;
1042                -webkit-text-stroke: 0.1vw green;
1043            }
1044
1045            60% {
1046                color: deepSkyBlue;
1047                -webkit-text-stroke: 0.1vw dodgerBlue;
1048            }
1049
1050            75% {
1051                color: magenta;
1052                -webkit-text-stroke: 0.1vw purple;
1053            }
1054
1055            100% {
1056                color: transparent;
1057                -webkit-text-stroke: 0.1vw transparent;
1058                letter-spacing: 2.5vw;
1059            }
1060        }
1061
1062        #lbaAlternative {
1063            margin-bottom: 2vh;
1064            display: none;
1065        }
1066
1067        #housePrm1,
1068        #housePrm2 {
1069            /* background-image: linear-gradient(100deg, white, white, lightBlue, white, white); */
1070            height: 256px;
1071            display: none;
1072        }
1073
1074        @media only screen and (min-width: 1580px) {
1075
1076            /* adslot_2 */
1077            #housePrm1 {
1078                display: inline-block;
1079            }
1080
1081        }
1082
1083        @media only screen and (min-width: 1900px) {
1084            #housePrm2 {
1085                display: inline-block;
1086            }
1087
1088        }
1089
1090        /* As per Google advice: https://support.google.com/adsense/answer/9183363#exact&zippy=%2Cexact-size-per-screen-width-example%2Chiding-ads-for-specific-screen-sizes-example (hide ad for very narrow screens - mostly older pcs) */
1091        @media (max-width: 1250px) {
1092            .adslot_3 {
1093                display: none;
1094            }
1095        }
1096
1097
1098
1099
1100        /*
1101    #lbaInstagram {
1102        display: none;
1103        object-fit: scale-down;
1104        width: 90vw;
1105        max-height: 15vh;
1106        margin-bottom: 3vh;
1107    }
1108        */
1109
1110        #prmoiframe {
1111            width: 800px;
1112            height: 150px;
1113            overflow: hidden;
1114            border: 0;
1115            border-radius: 10px;
1116            box-shadow: 2vmin 2vmin 2vmin rgba(0, 0, 0, 0.4);
1117        }
1118
1119        #lbaAlternativeFacebook {
1120            margin: auto;
1121            width: 800px;
1122            height: 150px;
1123        }
1124
1125        .spacer {
1126            height: 40vh;
1127        }
1128
1129        .gameThumb {
1130            width: 100%;
1131            height: 100%;
1132            transition: height 2s ease, width 2s ease, filter .5s;
1133            /* only used where script later adds 'hover' styling */
1134            font-size: 0;
1135            /*removes ugly alt text */
1136        }
1137
1138        .gameThumbLoading {
1139            /* defauly - now unused */
1140            background-image: linear-gradient(lime, navy);
1141        }
1142
1143        .gameThumbLoading1 {
1144            background-image: linear-gradient(red, orange);
1145        }
1146
1147        .gameThumbLoading2 {
1148            background-image: linear-gradient(orange, yellow);
1149        }
1150
1151        .gameThumbLoading3 {
1152            background-image: linear-gradient(yellow, lime);
1153        }
1154
1155        .gameThumbLoading4 {
1156            background-image: linear-gradient(lime, dodgerBlue);
1157        }
1158
1159        .gameThumbLoading5 {
1160            background-image: linear-gradient(dodgerBlue, darkViolet);
1161        }
1162
1163        .gameThumbLoading6 {
1164            background-image: linear-gradient(darkViolet, magenta);
1165        }
1166
1167        .gameThumbLoading7 {
1168            background-image: linear-gradient(magenta, red);
1169        }
1170
1171
1172        .gameThumbOrientationPortrait {
1173            position: absolute;
1174            z-index: 15;
1175            pointer-events: none;
1176            border-radius: 0.7vmin;
1177            border: 0.4vmin solid rgba(255, 255, 255, 0.4);
1178            background-color: rgba(0, 0, 0, 0.4);
1179            bottom: 3.5%;
1180            right: 4%;
1181            width: 2.5vmin;
1182            height: 4vmin;
1183        }
1184
1185        .gameThumbOrientationLandscape {
1186            position: absolute;
1187            z-index: 15;
1188            pointer-events: none;
1189            border-radius: 0.7vmin;
1190            border: 0.4vmin solid rgba(255, 255, 255, 0.4);
1191            background-color: rgba(0, 0, 0, 0.4);
1192            bottom: 3.5%;
1193            right: 4%;
1194            width: 4vmin;
1195            height: 2.5vmin;
1196        }
1197
1198        .gameThumbShine {
1199            position: absolute;
1200            pointer-events: none;
1201            border-radius: 0 0 10vmin 10vmin;
1202            z-index: 10;
1203            width: 100%;
1204            height: 40%;
1205            left: -5%;
1206            opacity: 0.5;
1207            background-image: linear-gradient(rgba(255, 255, 255, 0.4), white, rgba(255, 255, 255, 0));
1208        }
1209
1210        @keyframes gameThumbShine {
1211            0% {
1212                opacity: 0.5;
1213            }
1214
1215            80% {
1216                opacity: 0.5;
1217            }
1218
1219            90% {
1220                opacity: 1;
1221            }
1222
1223            100% {
1224                opacity: 0.5;
1225            }
1226        }
1227
1228
1229
1230        #secretButton,
1231        #secretButton2 {
1232            background-color: white;
1233            width: 10vw;
1234            margin-left: 5vw;
1235            margin-top: 2vh;
1236            height: 5vh;
1237            border-radius: 1vmin;
1238            opacity: 0.1;
1239            cursor: pointer;
1240            transition: 1s;
1241        }
1242
1243        #secretButton2 {
1244            width: 5vw;
1245            opacity: 0.05;
1246        }
1247
1248        #secretButton:hover,
1249        #secretButton2:hover {
1250            opacity: 0.5;
1251        }
1252
1253        #desktopPrmo {
1254            font-size: 2em;
1255            margin-left: 3vw;
1256            margin-right: 3vw;
1257            display: none;
1258        }
1259
1260        #devoryGames {
1261            display: none;
1262            font-size: 0;
1263            margin-top: 5vh;
1264            margin-bottom: 17vh;
1265        }
1266
1267        #devoryGamesMainTitle {
1268            font-size: 6.5vw;
1269        }
1270
1271        #devoryGamesSubtitle {
1272            font-size: 2em;
1273            letter-spacing: 0.4vw;
1274            margin-bottom: 2vh;
1275        }
1276
1277        .ggRed,
1278        .ggYellow,
1279        .ggOrange,
1280        .ggLime,
1281        .ggBlue,
1282        .ggPurple,
1283        .ggRedX,
1284        .ggYellowX,
1285        .ggOrangeX,
1286        .ggLimeX,
1287        .ggBlueX,
1288        .ggPurpleX {
1289            display: inline-block;
1290            color: red;
1291            -webkit-text-stroke: 0.1vmax maroon;
1292            text-shadow: 1vmin 1vmin 0 rgba(0, 0, 0, 0.4);
1293            animation: wobble 2s ease-in-out infinite;
1294        }
1295
1296        .ggOrange,
1297        .ggOrangeX {
1298            color: orange;
1299            -webkit-text-stroke-color: brown;
1300            animation: wobble 2.01s ease-in-out infinite;
1301        }
1302
1303        .ggYellow,
1304        .ggYellowX {
1305            color: yellow;
1306            -webkit-text-stroke-color: darkgoldenrod;
1307            animation: wobble 2.02s ease-in-out infinite;
1308        }
1309
1310        .ggLime,
1311        .ggLimeX {
1312            color: lime;
1313            -webkit-text-stroke-color: green;
1314            animation: wobble 2.03s ease-in-out infinite;
1315        }
1316
1317        .ggBlue,
1318        .ggBlueX {
1319            color: #44f;
1320            -webkit-text-stroke-color: #00b;
1321            animation: wobble 2.04s ease-in-out infinite;
1322        }
1323
1324        .ggPurple,
1325        .ggPurpleX {
1326            color: magenta;
1327            -webkit-text-stroke-color: purple;
1328            animation: wobble 2.05s ease-in-out infinite;
1329        }
1330
1331        .ggRedX,
1332        .ggYellowX,
1333        .ggOrangeX,
1334        .ggLimeX,
1335        .ggBlueX,
1336        .ggPurpleX {
1337            animation: none;
1338        }
1339
1340        @keyframes wobble {
1341            0% {
1342                margin-left: -1vw;
1343            }
1344
1345            50% {
1346                margin-left: 1vw;
1347            }
1348
1349            100% {
1350                margin-left: -1vw;
1351            }
1352        }
1353
1354        @keyframes shake {
1355
1356            10%,
1357            90% {
1358                transform: translate3d(-1px, -1px, 0)
1359            }
1360
1361            20%,
1362            80% {
1363                transform: translate3d(2px, 1px, 0)
1364            }
1365
1366            30%,
1367            50%,
1368            70% {
1369                transform: translate3d(-4px, -3px, 0)
1370            }
1371
1372            40%,
1373            60% {
1374                transform: translate3d(4px, 3px, 0);
1375            }
1376        }
1377
1378        @keyframes vshake {
1379
1380            10%,
1381            90% {
1382                transform: translate3d(0, -1px, 0)
1383            }
1384
1385            20%,
1386            80% {
1387                transform: translate3d(0, 1px, 0)
1388            }
1389
1390            30%,
1391            50%,
1392            70% {
1393                transform: translate3d(0, -3px, 0)
1394            }
1395
1396            40%,
1397            60% {
1398                transform: translate3d(0, 3px, 0);
1399            }
1400        }
1401
1402        @keyframes brightFlash {
1403
1404            0%,
1405            40%,
1406            80% {
1407                filter: brightness(0) invert(1);
1408            }
1409
1410            20%,
1411            60%,
1412            100% {
1413                filter: none;
1414            }
1415        }
1416
1417        .gameTitle {
1418            position: absolute;
1419            width: 65%;
1420            top: -100%;
1421            left: 3%;
1422            z-index: 20;
1423            pointer-events: none;
1424            font-size: 24px;
1425            text-align: left;
1426        }
1427
1428        @keyframes gameTitle {
1429
1430            0%,
1431            40%,
1432            80% {
1433                top: -100%;
1434            }
1435
1436            20%,
1437            60%,
1438            100% {
1439                top: 2%;
1440            }
1441        }
1442
1443        #dateStrap {
1444            font-size: 4vw;
1445        }
1446
1447        #bottomPoo {
1448            position: relative;
1449            margin: auto;
1450            width: 40vmin;
1451            height: 30.8vmin;
1452            margin-top: 30vh;
1453            margin-bottom: 3vh;
1454            background-size: 120vmin 30.8vmin;
1455            background-position: 0 bottom;
1456            background-repeat: no-repeat;
1457            cursor: pointer;
1458            display: none;
1459            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='230' viewBox='0 0 238.1 60.9'%3E%3Cg transform='translate(0 -236.1)'%3E%3Cellipse ry='11.2' rx='36.3' cy='285.8' cx='43.1' fill-opacity='.2'/%3E%3Cpath d='M35.8 237.3c-3.3-.3.8 3 1.6 4 2.5 3.6-2 5.6-5.5 6.9a9.2 9.2 0 0 0-5.9 10.7 9.2 9.2 0 0 0-8.1 11.7c-6.1.4-10.2 7.7-7.4 13 2.2 5.7 9.6 6.3 14 4 4.1 2.6 9.2.8 13.6.2 5.6-1.2 11.2 1 16.8.8 7.3 0 18.7-2.3 16.7-10.9-1.1-4-4.3-3.3-4.6-7-.4-3.6-2.6-7.4-6.2-8a8.3 8.3 0 0 0-7.1-10.7c-.8-5.7-4-11.5-9.7-13.5-2.6-1-5.5-1.3-8.2-1.2z' fill='%23784421' paint-order='markers fill stroke'/%3E%3Cpath d='M4
14596.6 240c3.4 9.5-6.2 13.7-13 18.5 8.3-1 13.9-4 20.1-6.5h-.4c-.6-4.6-2.9-9.3-6.7-12zm13.3 16.6c-7.4 4.1-14.2 8.1-28.7 13.2 0 0 11.7-1.4 20.8-4-1 10.2-15.8 17-29.8 17.5.3.6 9-.3 9.5.1-6.3 1.1-13 2.2-19.6 3.1 3.2 2.9 8.6 2.8 12 1 4.1 2.7 9.2.8 13.6.3 5.6-1.3 11.2 1 16.8.8 7.3 0 18.7-2.4 16.7-10.9-.7-2.6-2.3-3.2-3.4-4.4l-.7.4c.7-3.3-5.2-15.1-9.7-9.7 1.2-.5 2.2-1 3-1.6.7-2 .4-4-.5-5.8z' fill-opacity='.1' paint-order='markers fill stroke'/%3E%3Cpath d='M35 237.2c-2.6 0 1.2 3.1 2 4.1 2.5 3.6-2 5.5-5.4 6.8a9.2 9.2 0 0 0-6 10.8 9.2 9.2 0 0 0-8.1 11.7c-6.1.4-10.2 7.6-7.4 13a8 8 0 0 0 5.7 4.8 7.6 7.6 0 0 1-2-2.8c-2.7-5.4 1.4-12.6 7.5-13a9.2 9.2 0 0 1 8-11.7 9.2 9.2 0 0 1 6-10.8c3.4-1.3 8-3.2 5.4-6.8-.7-1-4.6-4.1-1.9-4h.3c2.7-.2 5.4.1 8 1-1.1-.7-2.3-1.4-3.5-1.8-2.6-1-5.4-1.4-8.2-1.3H35z' fill='%23ff0' fill-opacity='.2' paint-order='markers fill stroke'/%3E%3Cpath d='M35 237.2c-3.2-.3 1 3 1.7 4.1 2.5 3.6-2 5.5-5.4 6.8a9.2 9.2 0 0 0-6 10.8 9.2 9.2 0 0 0-8 11.7c-6.2.4-10.3 7.6-7.5 13 2.2 5.6 9.7 6.2 14 4 4.1 2.6 9.2.7 13.6.2 5.6-1.3 11.2 1 16.8.7 7.3 0 18.8-2.3 16.7-10.8-1.1-4-4.3-3.3-4.6-7-.4-3.6-2.6-7.5-6.2-8a8.3 8.3 0 0 0-7-10.7c-.9-5.7-4.1-11.5-9.8-13.6-2.6-1-5.4-1.3-8.2-1.2z' fill='none' stroke='%235c3419' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round' paint-order='markers fill stroke'/%3E%3Cpath d='M27.7 262.3c.6 5.9 11.6 6.2 12.2 0M43.6 262.3c.5 5.9 11.5 6.2 12.1 0' fill='none' stroke='%2328170b' stroke-width='1.9' stroke-linecap='round'/%3E%3Cellipse ry='3.4' rx='2.1' cy='277.1' cx='41' fill='%2328170b'/%3E%3Cpath d='M64 241h11l-11.2 13.6H75' fill='none' stroke='%23fff' stroke-width='2.1' stroke-opacity='.5'/%3E%3Cpath d='M58.8 259.8h8.1l-8.3 10H67' fill='none' stroke='%23fff' stroke-width='1.6' stroke-opacity='.7'/%3E%3Cpath d='M51.4 272.9H57l-5.9 7h5.9' fill='none' stroke='%23fff' stroke-width='1.1'/%3E%3C/g%3E%3Cg transform='translate(79.4 -236.1)'%3E%3Cellipse cx='43.1' cy='285.8' rx='36.3' ry='11.2' fill-opacity='.2'/%3E%3Cpath d='M35.8 237.3c-3.3-.3.8 3 1.6 4 2.5 3.6-2 5.6-5.5 6.9a9.2 9.2 0 0 0-5.9 10.7 9.2 9.2 0 0 0-8.1 11.7c-6.1.4-10.2 7.7-7.4 13 2.2 5.7 9.6 6.3 14 4 4.1 2.6 9.2.8 13.6.2 5.6-1.2 11.2 1 16.8.8 7.3 0 18.7-2.3 16.7-10.9-1.1-4-4.3-3.3-4.6-7-.4-3.6-2.6-7.4-6.2-8a8.3 8.3 0 0 0-7.1-10.7c-.8-5.7-4-11.5-9.7-13.5-2.6-1-5.5-1.3-8.2-1.2z' fill='%23784421' paint-order='markers fill stroke'/%3E%3Cpath d='M46.6 240c3.4 9.5-6.2 13.7-13 18.5 8.3-1 13.9-4 20.1-6.5h-.4c-.6-4.6-2.9-9.3-6.7-12zm13.3 16.6c-7.4 4.1-14.2 8.1-28.7 13.2 0 0 11.7-1.4 20.8-4-1 10.2-15.8 17-29.8 17.5.3.6 9-.3 9.5.1-6.3 1.1-13 2.2-19.6 3.1 3.2 2.9 8.6 2.8 12 1 4.1 2.7 9.2.8 13.6.3 5.6-1.3 11.2 1 16.8.8 7.3 0 18.7-2.4 16.7-10.9-.7-2.6-2.3-3.2-3.4-4.4l-.7.4c.7-3.3-5.2-15.1-9.7-9.7 1.2-.5 2.2-1 3-1.6.7-2 .4-4-.5-5.8z' fill-opacity='.1' paint-order='markers fill stroke'/%3E%3Cpath d='M35 237.2c-2.6 0 1.2 3.1 2 4.1 2.5 3.6-2 5.5-5.4 6.8a9.2 9.2 0 0 0-6 10.8 9.2 9.2 0 0 0-8.1 11.7c-6.1.4-10.2 7.6-7.4 13a8 8 0 0 0 5.7 4.8 7.6 7.6 0 0 1-2-2.8c-2.7-5.4 1.4-12.6 7.5-13a9.2 9.2 0 0 1 8-11.7 9.2 9.2 0 0 1 6-10.8c3.4-1.3 8-3.2 5.4-6.8-.7-1-4.6-4.1-1.9-4h.3c2.7-.2 5.4.1 8 1-1.1-.7-2.3-1.4-3.5-1.8-2.6-1-5.4-1.4-8.2-1.3H35z' fill='%23ff0' fill-opacity='.2' paint-order='markers fill stroke'/%3E%3Cpath d='M35 237.2c-3.2-.3 1 3 1.7 4.1 2.5 3.6-2 5.5-5.4 6.8a9.2 9.2 0 0 0-6 10.8 9.2 9.2 0 0 0-8 11.7c-6.2.4-10.3 7.6-7.5 13 2.2 5.6 9.7 6.2 14 4 4.1 2.6 9.2.7 13.6.2 5.6-1.3 11.2 1 16.8.7 7.3 0 18.8-2.3 16.7-10.8-1.1-4-4.3-3.3-4.6-7-.4-3.6-2.6-7.5-6.2-8a8.3 8.3 0 0 0-7-10.7c-.9-5.7-4.1-11.5-9.8-13.6-2.6-1-5.4-1.3-8.2-1.2z' fill='none' stroke='%235c3419' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round' paint-order='markers fill stroke'/%3E%3Cg transform='matrix(.87574 0 0 .87125 -257.3 85.6)'%3E%3Ccircle r='7.8' cy='204.9' 
1459cx='351.4' fill='%235c3419' paint-order='markers fill stroke'/%3E%3Ccircle cx='349.9' cy='205.6' r='7.8' fill='%23fff' paint-order='markers fill stroke'/%3E%3Cpath d='M354.8 199.5a7.8 7.8 0 0 1 1.4 4.6 7.8 7.8 0 0 1-7.7 7.7 7.8 7.8 0 0 1-4.8-1.7 7.8 7.8 0 0 0 6.2 3.3 7.8 7.8 0 0 0 7.8-7.8 7.8 7.8 0 0 0-3-6z' fill='%23ffffc0' paint-order='markers fill stroke'/%3E%3Cellipse ry='3.2' rx='2.9' cy='206.2' cx='348.9' paint-order='markers fill stroke'/%3E%3Ccircle cx='347.5' cy='204.7' r='1.5' fill='%23fff'/%3E%3C/g%3E%3Cg transform='matrix(.87574 0 0 .87125 -272 85.6)'%3E%3Ccircle cx='348.5' cy='204.6' r='7.8' fill='%235c3419' paint-order='markers fill stroke'/%3E%3Ccircle r='7.8' cy='205.6' cx='349.9' fill='%23fff' paint-order='markers fill stroke'/%3E%3Cpath d='M354.8 199.5a7.8 7.8 0 0 1 1.4 4.6 7.8 7.8 0 0 1-7.7 7.7 7.8 7.8 0 0 1-4.8-1.7 7.8 7.8 0 0 0 6.2 3.3 7.8 7.8 0 0 0 7.8-7.8 7.8 7.8 0 0 0-3-6z' fill='%23ffffc0' paint-order='markers fill stroke'/%3E%3Cellipse ry='3.2' rx='2.9' cy='206.2' cx='349.9' paint-order='markers fill stroke'/%3E%3Ccircle cx='348.5' cy='204.7' r='1.5' fill='%23fff'/%3E%3C/g%3E%3Cpath d='M34.7 274.3h13.7c-2.7 12.6-12.2 10.7-13.7 0' fill='%23370606'/%3E%3Cpath d='M41.5 280c-1.2 0-2.4.5-3.5 1.6 2 2 4.8 2 7-.2a5 5 0 0 0-3.5-1.4z' fill='%23c00000'/%3E%3C/g%3E%3Cg transform='translate(158.8 -236.1)'%3E%3Cellipse ry='11.2' rx='36.3' cy='285.8' cx='43.1' fill-opacity='.2'/%3E%3Cpath d='M35.8 237.3c-3.3-.3.8 3 1.6 4 2.5 3.6-2 5.6-5.5 6.9a9.2 9.2 0 0 0-5.9 10.7 9.2 9.2 0 0 0-8.1 11.7c-6.1.4-10.2 7.7-7.4 13 2.2 5.7 9.6 6.3 14 4 4.1 2.6 9.2.8 13.6.2 5.6-1.2 11.2 1 16.8.8 7.3 0 18.7-2.3 16.7-10.9-1.1-4-4.3-3.3-4.6-7-.4-3.6-2.6-7.4-6.2-8a8.3 8.3 0 0 0-7.1-10.7c-.8-5.7-4-11.5-9.7-13.5-2.6-1-5.5-1.3-8.2-1.2z' fill='%23784421' paint-order='markers fill stroke'/%3E%3Cpath d='M46.6 240c3.4 9.5-6.2 13.7-13 18.5 8.3-1 13.9-4 20.1-6.5h-.4c-.6-4.6-2.9-9.3-6.7-12zm13.3 16.6c-7.4 4.1-14.2 8.1-28.7 13.2 0 0 11.7-1.4 20.8-4-1 10.2-15.8 17-29.8 17.5.3.6 9-.3 9.5.1-6.3 1.1-13 2.2-19.6 3.1 3.2 2.9 8.6 2.8 12 1 4.1 2.7 9.2.8 13.6.3 5.6-1.3 11.2 1 16.8.8 7.3 0 18.7-2.4 16.7-10.9-.7-2.6-2.3-3.2-3.4-4.4l-.7.4c.7-3.3-5.2-15.1-9.7-9.7 1.2-.5 2.2-1 3-1.6.7-2 .4-4-.5-5.8z' fill-opacity='.1' paint-order='markers fill stroke'/%3E%3Cpath d='M35 237.2c-2.6 0 1.2 3.1 2 4.1 2.5 3.6-2 5.5-5.4 6.8a9.2 9.2 0 0 0-6 10.8 9.2 9.2 0 0 0-8.1 11.7c-6.1.4-10.2 7.6-7.4 13a8 8 0 0 0 5.7 4.8 7.6 7.6 0 0 1-2-2.8c-2.7-5.4 1.4-12.6 7.5-13a9.2 9.2 0 0 1 8-11.7 9.2 9.2 0 0 1 6-10.8c3.4-1.3 8-3.2 5.4-6.8-.7-1-4.6-4.1-1.9-4h.3c2.7-.2 5.4.1 8 1-1.1-.7-2.3-1.4-3.5-1.8-2.6-1-5.4-1.4-8.2-1.3H35z' fill='%23ff0' fill-opacity='.2' paint-order='markers fill stroke'/%3E%3Cpath d='M35 237.2c-3.2-.3 1 3 1.7 4.1 2.5 3.6-2 5.5-5.4 6.8a9.2 9.2 0 0 0-6 10.8 9.2 9.2 0 0 0-8 11.7c-6.2.4-10.3 7.6-7.5 13 2.2 5.6 9.7 6.2 14 4 4.1 2.6 9.2.7 13.6.2 5.6-1.3 11.2 1 16.8.7 7.3 0 18.8-2.3 16.7-10.8-1.1-4-4.3-3.3-4.6-7-.4-3.6-2.6-7.5-6.2-8a8.3 8.3 0 0 0-7-10.7c-.9-5.7-4.1-11.5-9.8-13.6-2.6-1-5.4-1.3-8.2-1.2z' fill='none' stroke='%235c3419' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round' paint-order='markers fill stroke'/%3E%3Cellipse cx='276.5' cy='-41.8' rx='3.7' ry='2.5' transform='rotate(90)' fill='%2328170b'/%3E%3Cpath d='M30.5 261.2l6.7 5.4-10.3.5M53.2 261l-6.6 5.6 10.4.2' fill='none' stroke='%2328170b' stroke-width='2.5' stroke-linecap='round'/%3E%3C/g%3E%3C/svg%3E");
1460        }
1461
1462        .hueBlock {
1463            border-top: 3px solid #fff;
1464            border-bottom: 3px solid #fff;
1465            width: 100%;
1466            height: 4vmin;
1467            background: linear-gradient(#f00, #ff0);
1468            animation: hueBlock 5s 5s linear infinite alternate;
1469        }
1470
1471        @keyframes hueBlock {
1472            100% {
1473                filter: hue-rotate(360deg)
1474            }
1475        }
1476
1477        .svrImg {
1478            display: inline-block;
1479            width: 50px;
1480            height: 50px;
1481            opacity: 0.05;
1482        }
1483
1484        #lensFlareContainer {
1485            position: absolute;
1486            width: 100vw;
1487            height: 100vh;
1488            overflow: hidden;
1489        }
1490
1491        /* lens flare common to all */
1492        #lensFlareA,
1493        #lensFlareB,
1494        #lensFlareC,
1495        #lensFlare1,
1496        #lensFlare2,
1497        #lensFlare3 {
1498            position: fixed;
1499            background-color: rgba(255, 128, 128, 0.06);
1500            border-radius: 50%;
1501            pointer-events: none;
1502        }
1503
1504        #lensFlareA {
1505            left: 40vw;
1506            height: 50vw;
1507            width: 50vw;
1508        }
1509
1510        #lensFlareB {
1511            right: -10vw;
1512            top: 40vh;
1513            height: 40vw;
1514            width: 40vw;
1515        }
1516
1517        #lensFlareC {
1518            left: -20vw;
1519            bottom: -20vh;
1520            height: 80vw;
1521            width: 80vw;
1522        }
1523
1524        #lensFlare1 {
1525            height: 50vw;
1526            width: 50vw;
1527            left: 100vw;
1528            top: 10vh;
1529            animation: lensFlare1 140s 4s ease-in-out infinite alternate;
1530        }
1531
1532        @keyframes lensFlare1 {
1533            from {
1534                left: 100vw;
1535                top: 10vh;
1536            }
1537
1538            to {
1539                left: -50vw;
1540                top: 80vh
1541            }
1542        }
1543
1544        #lensFlare2 {
1545            height: 40vw;
1546            width: 40vw;
1547            top: -10vh;
1548            left: -20vw;
1549            animation: lensFlare2 50s 5s ease-in-out infinite alternate;
1550        }
1551
1552        @keyframes lensFlare2 {
1553            from {
1554                top: -10vh;
1555                left: -20vw;
1556            }
1557
1558            to {
1559                top: 20vh;
1560                left: 40vw;
1561            }
1562        }
1563
1564        #lensFlare3 {
1565            height: 30vw;
1566            width: 30vw;
1567            top: 80vh;
1568            left: 10vw;
1569            animation: lensFlare3 70s 6s ease-in-out infinite alternate;
1570        }
1571
1572        @keyframes lensFlare3 {
1573            from {
1574                top: 80vh;
1575                left: 10vw;
1576            }
1577
1578            to {
1579                top: -30vh;
1580                left: 100vw;
1581            }
1582        }
1583
1584        /* bonus section - common to all */
1585        #todaysDate,
1586        #frivolousFact,
1587        #famousQuote,
1588        #dailyGIF,
1589        #jokeA,
1590        #jokeB,
1591        #cutePicture,
1592        #amazingPicture,
1593        #streetArt,
1594        #puzzle,
1595        #soundBoardA,
1596        #soundBoardB,
1597        #reactionTestA,
1598        #reactionTestB,
1599        #opticalIllusion,
1600        #chiptune,
1601        #riddleA,
1602        #riddleB,
1603        #storyA,
1604        #storyB,
1605        #limerickA,
1606        #limerickB,
1607        #tongueTwisterA,
1608        #tongueTwisterB,
1609        #loveTesterA,
1610        #loveTesterB,
1611        #funnyVideo {
1612            position: relative;
1613            font-family: frivFont, arial, helvetica, sans-serif;
1614            font-size: 5.7vmin;
1615            padding: 1.5vmin;
1616            padding-top: 6vh;
1617            padding-bottom: 6vh;
1618            box-sizing: border-box;
1619            font-weight: 700;
1620            width: 100%;
1621            word-wrap: break-word;
1622        }
1623
1624        #todaysDate {
1625            background-color: #d00;
1626            border-radius: 5vmin 5vmin 0 0;
1627            font-size: calc(8vmin + (7vw - 8vmin));
1628            font-weight: 700;
1629            width: 100%;
1630            cursor: default;
1631        }
1632
1633        #todaysDateEmoji1,
1634        #todaysDateEmoji2 {
1635            font-size: calc(1em + 2.5vmin);
1636            font-weight: normal;
1637        }
1638
1639        #chiptune {
1640            background-color: #c06;
1641            cursor: pointer;
1642            animation: chiptune 0.5s ease-in-out infinite alternate;
1643            animation-play-state: paused;
1644        }
1645
1646        @keyframes chiptune {
1647            to {
1648                letter-spacing: 0.1vw;
1649            }
1650        }
1651
1652        #chiptuneBottomBar {
1653            position: relative;
1654            min-height: 5vh;
1655            padding-bottom: 1vh;
1656            background-color: #c06;
1657            padding-bottom: 2vh;
1658            font-size: 4em;
1659            display: none;
1660            margin-top: -0.2vh;
1661        }
1662
1663        #cutePicture {
1664            position: relative;
1665            background-color: #a0b;
1666            cursor: pointer;
1667        }
1668
1669        #cuteImage {
1670            position: relative;
1671            height: 100vh;
1672            background-color: #a0b;
1673            background-repeat: no-repeat;
1674            background-size: contain;
1675            background-position: center;
1676            display: none;
1677        }
1678
1679        #cuteImageBottomBar {
1680            position: relative;
1681            min-height: 5vh;
1682            padding-bottom: 1vh;
1683            background-color: #a0b;
1684            padding-bottom: 2vh;
1685            font-size: 4em;
1686            display: none;
1687            margin-top: -0.2vh;
1688        }
1689
1690        #puzzle,
1691        #puzzleImage {
1692            position: relative;
1693            background-color: #80d;
1694            cursor: pointer;
1695        }
1696
1697        #puzzleImage {
1698            height: 100vh;
1699            background-repeat: no-repeat;
1700            background-size: contain;
1701            background-position: center;
1702            display: none;
1703        }
1704
1705        #puzzleImagePreload {
1706            opacity: 0.05;
1707            height: 10px;
1708            width: 10px;
1709            margin-top: 2vh;
1710        }
1711
1712        #puzzleBottomBar {
1713            position: relative;
1714            min-height: 5vh;
1715            background-color: #80d;
1716            padding-bottom: 2vh;
1717            font-size: 4em;
1718            display: none;
1719            margin-top: -0.2vh;
1720        }
1721
1722        #puzzleMessage {
1723            position: absolute;
1724            box-sizing: border-box;
1725            pointer-events: none;
1726            width: 80%;
1727            left: 10%;
1728            bottom: 40%;
1729            padding: 1vmin;
1730            margin: auto;
1731            font-size: 5vmin;
1732            text-shadow: 0.5vmin 0.5vmin 0 rgba(0, 0, 0, 0.7);
1733            border-radius: 2vmin;
1734            background-color: rgba(0, 0, 255, 0.8);
1735        }
1736
1737        #famousQuoteEmoji {
1738            display: none;
1739        }
1740
1741        #famousQuote {
1742            background-color: #65d;
1743            cursor: default;
1744            display: none;
1745        }
1746
1747        #famousQuoteBottomBar {
1748            position: relative;
1749            min-height: 5vh;
1750            padding-bottom: 1vh;
1751            background-color: #65d;
1752            padding-bottom: 2vh;
1753            font-size: 4em;
1754            margin-top: -0.2vh;
1755            display: none;
1756        }
1757
1758        #dailyGIF {
1759            position: relative;
1760            background-color: #a0b;
1761            cursor: pointer;
1762        }
1763
1764        #dailyGIFImage {
1765            position: relative;
1766            height: 100vh;
1767            background-color: #a0b;
1768            background-repeat: no-repeat;
1769            background-size: contain;
1770            background-position: center;
1771            display: none;
1772        }
1773
1774        #dailyGIFBottomBar {
1775            position: relative;
1776            min-height: 5vh;
1777            padding-bottom: 1vh;
1778            background-color: #a0b;
1779            padding-bottom: 2vh;
1780            font-size: 4em;
1781            margin-top: -0.2vh;
1782            display: none;
1783        }
1784
1785        #GIFMessage {
1786            position: absolute;
1787            box-sizing: border-box;
1788            pointer-events: none;
1789            width: 80%;
1790            left: 10%;
1791            bottom: 40%;
1792            padding: 1vmin;
1793            margin: auto;
1794            font-size: 5vmin;
1795            text-shadow: 0.5vmin 0.5vmin 0 rgba(0, 0, 0, 0.7);
1796            border-radius: 2vmin;
1797            background-color: rgba(0, 0, 255, 0.8);
1798        }
1799
1800        #jokeEmoji {
1801            display: none;
1802        }
1803
1804        #jokeA {
1805            background-color: royalBlue;
1806            cursor: pointer;
1807            padding-bottom: 0;
1808            display: none;
1809        }
1810
1811        #jokeB {
1812            background-color: royalBlue;
1813            cursor: pointer;
1814            display: none;
1815        }
1816
1817        #jokeBottomBar {
1818            position: relative;
1819            min-height: 5vh;
1820            padding-bottom: 1vh;
1821            background-color: royalBlue;
1822            padding-bottom: 2vh;
1823            font-size: 4em;
1824            display: none;
1825            margin-top: -0.2vh;
1826        }
1827
1828        #soundBoardA,
1829        #soundBoardB {
1830            position: relative;
1831            background-color: #09a;
1832            cursor: pointer;
1833        }
1834
1835        #soundBoardB {
1836            display: none;
1837        }
1838
1839        .soundButton {
1840            display: inline-block;
1841            border-radius: 0.3em;
1842            font-size: 1em;
1843            padding: 0.2em;
1844            margin: 0.1em;
1845            background-color: rgba(0, 0, 0, .3);
1846            cursor: pointer;
1847        }
1848
1849        #reactionTestA,
1850        #reactionTestB {
1851            position: relative;
1852            background-color: royalBlue;
1853            cursor: pointer;
1854        }
1855
1856        #reactionTestB {
1857            min-height: 90vh;
1858            font-size: 4.2vmin;
1859            display: none;
1860        }
1861
1862        #reactionTestFaces {
1863            position: relative;
1864            width: 100%;
1865            box-sizing: border-box;
1866            padding: 2vmin;
1867            border-radius: 3vmin;
1868        }
1869
1870        #reactionFaceHappy,
1871        .reactionFaceSad,
1872        .reactionFaceEmpty {
1873            display: inline-block;
1874            width: 33vmin;
1875            margin: 1vmin;
1876        }
1877
1878        .reactionFaceHappyInstructions,
1879        .reactionFaceSadInstructions {
1880            display: inline-block;
1881            width: 15vmin;
1882            padding: 1vmin;
1883            margin: 1vmin;
1884            border: 1vmin solid lime;
1885            border-radius: 3vmin;
1886        }
1887
1888        .reactionFaceSadInstructions {
1889            border-color: red;
1890        }
1891
1892        .reactionFaceEmpty {
1893            opacity: 0;
1894        }
1895
1896        #reactionFaceHappy {
1897            cursor: pointer;
1898        }
1899
1900        #reactionTestText {
1901            margin-top: 2vh;
1902        }
1903
1904        .reactionImagePreload {
1905            height: 0.1px;
1906            width: 0.1px;
1907        }
1908
1909        #imagePreloadHappy {
1910            display: none;
1911        }
1912
1913        #imagePreloadSad {
1914            display: none;
1915        }
1916
1917        #frivolousFactEmoji {
1918            display: none;
1919        }
1920
1921        #frivolousFact {
1922            background-color: #65d;
1923            cursor: default;
1924            display: none;
1925        }
1926
1927        #frivolousFactBottomBar {
1928            position: relative;
1929            min-height: 5vh;
1930            padding-bottom: 1vh;
1931            background-color: #65d;
1932            padding-bottom: 2vh;
1933            font-size: 4em;
1934            margin-top: -0.2vh;
1935            display: none;
1936        }
1937
1938        #amazingPicture {
1939            position: relative;
1940            background-color: #80d;
1941            cursor: pointer;
1942        }
1943
1944        #amazingImage {
1945            position: relative;
1946            height: 100vh;
1947            background-color: #80d;
1948            background-repeat: no-repeat;
1949            background-size: contain;
1950            background-position: center;
1951            display: none;
1952        }
1953
1954        #amazingImageBottomBar {
1955            position: relative;
1956            min-height: 5vh;
1957            background-color: #80d;
1958            padding-bottom: 2vh;
1959            font-size: 4em;
1960            display: none;
1961            margin-top: -0.2vh;
1962        }
1963
1964        #streetArt {
1965            position: relative;
1966            background-color: #a0b;
1967            cursor: pointer;
1968        }
1969
1970        #streetArtImage {
1971            position: relative;
1972            height: 100vh;
1973            background-color: #a0b;
1974            background-repeat: no-repeat;
1975            background-size: contain;
1976            background-position: center;
1977            display: none;
1978        }
1979
1980        #streetArtBottomBar {
1981            position: relative;
1982            min-height: 5vh;
1983            background-color: #a0b;
1984            padding-bottom: 2vh;
1985            font-size: 4em;
1986            display: none;
1987            margin-top: -0.2vh;
1988        }
1989
1990        #opticalIllusion {
1991            position: relative;
1992            background-color: #65d;
1993            cursor: pointer;
1994        }
1995
1996        #opticalIllusionImage {
1997            position: relative;
1998            height: 100vh;
1999            background-color: #65d;
2000            background-repeat: no-repeat;
2001            background-size: contain;
2002            background-position: center;
2003            cursor: pointer;
2004            display: none;
2005        }
2006
2007        #opticalIllusionBottomBar {
2008            position: relative;
2009            min-height: 5vh;
2010            background-color: #65d;
2011            padding-bottom: 2vh;
2012            font-size: 4em;
2013            display: none;
2014            margin-top: -0.2vh;
2015        }
2016
2017        #opticalIllusionMessage {
2018            position: absolute;
2019            box-sizing: border-box;
2020            pointer-events: none;
2021            width: 80%;
2022            left: 10%;
2023            bottom: 40%;
2024            padding: 1vmin;
2025            margin: auto;
2026            font-size: 5vmin;
2027            text-shadow: 0.5vmin 0.5vmin 0 rgba(0, 0, 0, 0.7);
2028            border-radius: 2vmin;
2029            background-color: rgba(0, 0, 255, 0.8);
2030        }
2031
2032        #riddleEmoji {
2033            display: none;
2034        }
2035
2036        #riddleContainer {
2037            position: relative;
2038        }
2039
2040        #riddleA {
2041            background-color: #09a;
2042            cursor: pointer;
2043            padding-bottom: 0;
2044            display: none;
2045        }
2046
2047        #riddleB {
2048            background-color: #09a;
2049            cursor: pointer;
2050            display: none;
2051        }
2052
2053        #riddleChangeDifficulty {
2054            position: absolute;
2055            cursor: pointer;
2056            z-index: 30;
2057            text-align: right;
2058            border-radius: 0 0 0 5vmin;
2059            background-color: rgba(0, 0, 0, 0.2);
2060            top: 0;
2061            right: 0;
2062            font-size: 3vmin;
2063            line-height: 90%;
2064            padding: 3vmin;
2065            padding-right: 1vmin;
2066            font-weight: 700;
2067            display: none;
2068        }
2069
2070        #limerickEmoji {
2071            display: none;
2072        }
2073
2074        #limerickA {
2075            background-color: #80d;
2076            cursor: pointer;
2077            padding-bottom: 6vh;
2078            display: none;
2079        }
2080
2081        #limerickB {
2082            background-color: #80d;
2083            display: none;
2084        }
2085
2086        #limerickBottomBar {
2087            position: relative;
2088            min-height: 5vh;
2089            padding-bottom: 1vh;
2090            background-color: #80d;
2091            padding-bottom: 2vh;
2092            font-size: 4em;
2093            margin-top: -0.2vh;
2094            display: none;
2095        }
2096
2097        #tongueTwisterEmoji {
2098            display: none;
2099        }
2100
2101        #tongueTwisterA {
2102            background-color: royalBlue;
2103            cursor: pointer;
2104            display: none;
2105        }
2106
2107        #tongueTwisterB {
2108            background-color: royalBlue;
2109            display: none;
2110        }
2111
2112        #tongueTwisterBottomBar {
2113            position: relative;
2114            min-height: 5vh;
2115            padding-bottom: 1vh;
2116            background-color: royalBlue;
2117            padding-bottom: 2vh;
2118            font-size: 4em;
2119            margin-top: -0.2vh;
2120            display: none;
2121        }
2122
2123        #storyEmoji {
2124            display: none;
2125        }
2126
2127        #storyA {
2128            background-color: #09a;
2129            cursor: pointer;
2130            display: none;
2131        }
2132
2133        #storyB {
2134            background-color: #09a;
2135            display: none;
2136            padding-top: 0;
2137        }
2138
2139        #storyC {
2140            background-color: #09a;
2141            display: none;
2142        }
2143
2144        #storyD {
2145            background-color: #09a;
2146            font-size: 4vmin;
2147            padding-bottom: 10vh;
2148            display: none;
2149        }
2150
2151        #storyTitleContainer {
2152            min-height: 22vh;
2153            position: relative;
2154        }
2155
2156        #storyTitle {
2157            line-height: 90%;
2158            width: 100%;
2159            color: red;
2160            -webkit-text-stroke: 0.3vmin maroon;
2161            margin: auto;
2162            position: absolute;
2163            top: 50%;
2164            left: 50%;
2165            transform: translate(-50%, -55%);
2166        }
2167
2168        #pleaseRateStory {
2169            font-size: 1.2em;
2170        }
2171
2172        #storyDescription1 {
2173            font-size: 0.5em;
2174        }
2175
2176        #storyDescription2 {
2177            font-size: 0.7em;
2178            padding-bottom: 2vh;
2179        }
2180
2181        #storyAudio {
2182            width: 100%;
2183            padding-bottom: 10vh;
2184            outline: 0;
2185            /* prevents blue outline on user select */
2186        }
2187
2188        #storyInfoButton {
2189            position: absolute;
2190            cursor: pointer;
2191            z-index: 30;
2192            text-align: right;
2193            border-radius: 0 0 0 5vmin;
2194            background-color: rgba(0, 0, 0, 0.2);
2195            top: 0;
2196            right: 0;
2197            font-size: 3vmin;
2198            line-height: 90%;
2199            padding: 3vmin;
2200            padding-right: 1vmin;
2201            font-weight: 700;
2202            display: none;
2203        }
2204
2205        #storyBottomBar {
2206            position: relative;
2207            min-height: 5vh;
2208            padding-bottom: 1vh;
2209            background-color: #09a;
2210            padding-bottom: 2vh;
2211            font-size: 2em;
2212            margin-top: -0.2vh;
2213            display: none;
2214        }
2215
2216        #loveTesterA {
2217            position: relative;
2218            background-color: #c06;
2219            cursor: pointer;
2220        }
2221
2222        #loveTesterB {
2223            position: relative;
2224            background-color: #c06;
2225            min-height: 90vh;
2226            font-size: 4.2vmin;
2227            cursor: pointer;
2228            display: none;
2229        }
2230
2231        #loveContentBox {
2232            position: relative;
2233            display: block;
2234            margin: auto;
2235            background-color: black;
2236            width: 85%;
2237            margin-bottom: 2vh;
2238            border: 3vmin outset green;
2239            border-radius: 3vmin;
2240            overflow: hidden;
2241        }
2242
2243        .loveTesterInput {
2244            display: block;
2245            margin: auto;
2246            width: 90%;
2247            font-family: frivFont;
2248            font-size: 6.5vmin;
2249            font-weight: 700;
2250            border: 1vmin solid maroon;
2251            border-radius: 1vmin;
2252            margin-top: 2vh;
2253            white-space: nowrap;
2254            resize: none;
2255            text-align: center;
2256        }
2257
2258        .loveTesterInput:focus {
2259            outline: none !important;
2260            /* prevents blue outline on user select */
2261        }
2262
2263        #greenScreen {
2264            z-index: 15;
2265            position: absolute;
2266            width: 100%;
2267            height: 100%;
2268            background-image: linear-gradient(rgba(0, 255, 0, 0.3), rgba(0, 0, 0, 0.5));
2269            background-size: 4px 4px;
2270        }
2271
2272        #onesAndZeros {
2273            position: absolute;
2274            position: absolute;
2275            width: 100%;
2276            height: 100%;
2277            font-family: monospace;
2278            color: green;
2279            overflow: hidden;
2280        }
2281
2282        #whiteSheet {
2283            position: absolute;
2284            z-index: 10;
2285            background-color: white;
2286            width: 100%;
2287            height: 100%;
2288            pointer-events: none;
2289            animation: whiteSheet 5s 0.2s linear forwards;
2290        }
2291
2292        @keyframes whiteSheet {
2293            to {
2294                opacity: 0;
2295            }
2296        }
2297
2298        #loveBackground {
2299            position: absolute;
2300            width: 100%;
2301            height: 100%;
2302            box-sizing: border-box;
2303            background-size: contain;
2304            background-position: center center;
2305            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1000' height='500' viewBox='0 0 264.6 132.3'%3E%3Cg transform='translate(0 -164.7)'%3E%3Cpath fill='%23faa' d='M0 164.7h264.6V297H0z'/%3E%3Cpath d='M484.8 171.2c-14.5 0-26.2 12-26.2 31.3 0 27.5 27.1 56 50.9 64.7 23.5-9.2 51.3-36.7 51.1-64-.1-18.8-12-32-26.4-32-11 0-21 7-24.7 17.4a26.2 26.2 0 0 0-24.7-17.4z' fill='red'/%3E%3Cellipse cx='132.3' cy='271.6' rx='93.2' ry='16.2' fill-opacity='.2'/%3E%3Cpath d='M145.8 184.4c-8.3 0-16.6 4.8-21.9 13.6a19.7 19.7 0 0 0-18.7-3.2 20.9 20.9 0 0 0-13.8 19.7 20.9 20.9 0 0 0-23.1-6.3c-10.9 4-16.4 16-11.2 30.5 7.4 20.6 35.4 34.6 55.6 34.6 5.7-5 11.2-12.1 15.4-20.2a77.9 77.9 0 0 0 16.3 20.8c22.6 0 54.2-15.8 62.5-39 5.9-16.2-.4-29.8-12.6-34.2a23.5 23.5 0 0 0-26 7.1c0-9.9-6.2-18.8-15.5-22.1-2.3-.9-4.7-1.3-7-1.3z' fill='%23ff0' stroke='%23fff' stroke-width='13.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M194.3 200.7c12.2 4.4 18.5 18 12.6 34.3-8.3 23.1-39.9 39-62.5 39-17-15-32-46.5-23.6-69.4 5.8-15.9 19.8-23.3 32-19a23.5 23.5 0 0 1 15.5 22.2 23.5 23.5 0 0 1 26-7.1z' fill='%23d40000' stroke='%23500' stroke-width='2.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M119.4 201.4l-.2.5c-7 19.3 2.4 44.6 15.6 61 7.7-13.6 11.7-30.2 6.8-43.6-4.2-11.4-13.2-18-22.2-17.9z' fill-opacity='.1'/%3E%3Cpath d='M68.3 208.2c-10.9 4-16.4 16-11.2 30.5 7.4 20.6 35.4 34.6 55.6 34.6 15.1-13.2 28.4-41.3 21-61.7-5.2-14-17.6-20.7-28.5-16.8a20.9 20.9 0 0 0-13.8 19.7 20.9 20.9 0 0 0-23.1-6.3z' fill='red' stroke='%23500' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M122.6 318.1c-8.3 0-16.6 4.9-21.9 13.7a19.7 19.7 0 0 0-18.7-3.2 20.9 20.9 0 0 0-13.8 19.7 20.9 20.9 0 0 0-23.2-6.4c-10.8 4-16.3 16-11.1 30.5 7.3 20.6 35.4 34.6 55.6 34.7 5.7-5 11.2-12.2 15.4-20.3a77.9 77.9 0 0 0 16.3 20.9c22.6 0 54.2-15.9 62.5-39 5.8-16.3-.4-29.9-12.6-34.3a23.5 23.5 0 0 0-26 7.1c0-9.9-6.2-18.7-15.6-22.1-2.2-.8-4.6-1.3-7-1.3z' fill='%230ff'/%3E%3Cpath d='M129.7 204.1c.8 24.5-13.5 52.2-29.8 67.6 4.4 1 8.8 1.6 12.8 1.6 15.1-13.2 28.4-41.3 21-61.7-1.1-2.8-2.4-5.3-4-7.5zM327.6 211.7c0 .2 0 .4-.2.5-7 19.3 2.4 44.6 15.7 61 7.6-13.5 11.6-30.2 6.7-43.6-4.2-11.4-13.1-18-22.2-17.9zM199.8 203.6c2.7 6.3 3 14.4-.2 23.2-8.2 23-38.4 39-61.7 40.6 2.1 2.4 4.3 4.6 6.5 6.5 22.6 0 54.2-15.8 62.5-39 4.9-13.5 1.3-25.3-7-31.3z' fill-opacity='.2'/%3E%3Cellipse cx='-44.9' cy='221.8' rx='7.9' ry='4' transform='rotate(-29.2)' fill='%23fff'/%3E%3Cellipse transform='rotate(-29.2)' ry='4.7' rx='9.4' cy='237' cx='26.4' fill='%23fff'/%3E%3Cellipse transform='matrix(.88983 .45628 -.54993 .8352 0 0)' ry='2.8' rx='7.9' cy='192.3' cx='216.7' fill='%23fff' fill-opacity='.5'/%3E%3Cellipse cx='234.7' cy='-83.4' rx='7.9' ry='2.8' transform='matrix(.33627 .94177 -.97264 .23233 0 0)' fill='%23fff' fill-opacity='.3'/%3E%3Cpath d='M36.6 200.1l-6-6.5-8.3 2.7 4.4-7.7-5.2-7.1 8.6 1.8 5.2-7.1 1 8.7 8.4 2.8-8 3.6zM256.5 206.7l-14.3-3.4-9 11.7-1.2-14.7-14-4.9 13.6-5.7.4-14.7 9.7 11.1 14-4.1-7.5 12.5zM244.5 244.9l-4.3-3-4.4 2.6 1.5-5-4-3.3 5.3-.1 2-4.8 1.7 5 5.2.4-4.2 3.1zM35 250.5l-9.9-5.3-8.8 6.7 2-11-9.2-6.3 11-1.5 3.3-10.7 4.8 10 11.1-.2-8 7.7zM80.3 188.7l-3.5-4-5 1.6 2.7-4.5-3-4.2 5.1 1.1 3.1-4.1.5 5.1 5 1.7-4.8 2z' fill='purple' fill-opacity='.3'/%3E%3Cpath d='M72.3 220.6l-11.1-13.8-15.3 9 13.7-11.2-9-15.3 11.2 13.8 15.3-9-13.7 11.2z' fill='%23fff' fill-opacity='.6'/%3E%3Ccircle cx='12.6' cy='178.3' r='7.1' fill='%23fff' fill-opacity='.3'/%3E%3Ccircle r='12.8' cy='188.5' cx='19.9' fill='%23fff' fill-opacity='.2'/%3E%3Cpath d='M137.2 191.6l-6.9-8.4-9.4 5.5 8.5-6.9-5.5-9.4 6.8 8.5 9.4-5.5-8.4 6.8z' fill='%23fff' fill-opacity='.6'/%3E%3C/g%3E%3C/svg%3E");
2306        }
2307
2308        #lovePercentage {
2309            z-index: 10;
2310            position: absolute;
2311            top: 50%;
2312            left: 50%;
2313            transform: translate(-50%, -50%);
2314            font-size: 25vmin;
2315            color: lime;
2316            text-shadow: 2vmin 2vmin 2vmin rgba(0, 0, 0, 0.7);
2317        }
2318
2319        #hBoxNames {
2320            position: absolute;
2321            margin: auto;
2322            width: 100%;
2323            top: 10%;
2324            left: 50%;
2325            transform: translate(-50%, -50%);
2326            font-size: 7vmin;
2327            line-height: 90%;
2328            text-shadow: 1vmin 1vmin 1vmin rgba(0, 0, 0, 0.7);
2329            color: lime;
2330        }
2331
2332        #hBoxTagline {
2333            position: absolute;
2334            margin: auto;
2335            width: 90%;
2336            left: 5%;
2337            bottom: 0;
2338            margin-bottom: 1vh;
2339            text-shadow: 0.5vmin 0.5vmin 0.5vmin rgba(0, 0, 0, 0.7);
2340        }
2341
2342        #testInfoButton {
2343            position: absolute;
2344            cursor: pointer;
2345            z-index: 30;
2346            text-align: right;
2347            border-radius: 5vmin 0 0 0;
2348            background-color: rgba(0, 0, 0, 0.2);
2349            bottom: 0;
2350            right: 0;
2351            font-size: 5vmin;
2352            line-height: 90%;
2353            padding: 3vmin;
2354            padding-right: 1vmin;
2355            font-weight: 700;
2356            display: none;
2357        }
2358
2359        .redButton,
2360        .redButtonSmall,
2361        .blueButton {
2362            display: inline-block;
2363            font-size: 5vmin;
2364            font-family: frivFont;
2365            color: lightgoldenrodyellow;
2366            padding: 3vmin;
2367            margin: 0.3vmin;
2368            margin-top: 1vmin;
2369            border-radius: 2vmin;
2370            border: 1vmin outset maroon;
2371            cursor: pointer;
2372            background: linear-gradient(red, white, red, red, red, red, maroon, brown);
2373            box-shadow: 2vmin 2vmin 2vmin rgba(0, 0, 0, 0.4);
2374        }
2375
2376        .redButton:focus,
2377        .redButtonSmall:focus,
2378        .blueButton:focus {
2379            outline: none;
2380        }
2381
2382        .redButtonSmall {
2383            padding: 1vmin;
2384        }
2385
2386        .blueButton {
2387            border: 1vmin outset navy;
2388            background: linear-gradient(dodgerBlue, white, dodgerBlue, dodgerBlue, dodgerBlue, dodgerBlue, blue, navy);
2389        }
2390
2391        #funnyVideo {
2392            background-color: forestGreen;
2393            border-radius: 0 0 5vmin 5vmin;
2394            cursor: pointer;
2395        }
2396
2397        #funnyVideoBox {
2398            position: relative;
2399            height: 100vh;
2400            background-color: forestGreen;
2401            display: none;
2402        }
2403
2404        #funnyVideoContainer {
2405            width: 100%;
2406            height: 100%;
2407        }
2408
2409        #funnyVideoBottomBar {
2410            position: relative;
2411            min-height: 5vh;
2412            background-color: forestGreen;
2413            border-radius: 0 0 5vmin 5vmin;
2414            padding-bottom: 2vh;
2415            font-size: 4em;
2416            display: none;
2417            margin-top: -0.2vh;
2418        }
2419
2420
2421        .sectionContainer {
2422            position: relative;
2423        }
2424
2425        .voteThumb,
2426        .voteThumbSmall {
2427            font-size: 12vmin;
2428            font-weight: normal;
2429            margin-left: 5vmin;
2430            margin-right: 5vmin;
2431            cursor: pointer;
2432        }
2433
2434        .voteThumb,
2435        .voteThumbSmall {
2436            font-size: 4vmin;
2437            margin-left: 2vmin;
2438            margin-right: 2vmin;
2439        }
2440
2441        .emojiIdentifier {
2442            position: absolute;
2443            pointer-events: none;
2444            z-index: 10;
2445            font-size: 10vmin;
2446            font-weight: normal;
2447        }
2448
2449        #frivTips,
2450        #topDailyJoke {
2451            position: relative;
2452            background-color: darkmagenta;
2453            border-radius: 1em;
2454            margin-left: 7vmin;
2455            margin-right: 7vmin;
2456            margin-bottom: 5vmin;
2457            margin-top: 5vmin;
2458            padding: 2vmin;
2459            padding-top: 1vmin;
2460            padding-bottom: 1vmin;
2461            font-size: 1.7vmax;
2462            box-shadow: 20px 20px 10px rgba(0, 0, 0, 0.4);
2463            cursor: pointer;
2464            display: none;
2465        }
2466
2467        #topDailyJoke {
2468            margin-top: 0;
2469            margin-bottom: 3vmin;
2470        }
2471
2472        #userAlert {
2473            position: absolute;
2474            z-index: 20;
2475            width: 90%;
2476            font-size: 5vmin;
2477            color: maroon;
2478            padding: 0.1vmin;
2479            padding-bottom: 2vmin;
2480            border: 1vmin outset maroon;
2481            border-radius: 2vmin;
2482            cursor: pointer;
2483            background: linear-gradient(red, white, red, red, red, red, maroon);
2484            box-shadow: 2vmin 2vmin 2vmin rgba(0, 0, 0, 0.4);
2485            top: 10vmin;
2486            right: 105vw;
2487            animation: userAlertSlideIn 2s 20s ease-out forwards;
2488            /* showing of this is suspected to relate principally to loading time */
2489        }
2490
2491        @keyframes userAlertSlideIn {
2492            to {
2493                right: 5%;
2494            }
2495        }
2496
2497        .userAlertLink {
2498            border: 0.5vmin outset blue;
2499            background: linear-gradient(navy, white, navy, navy, navy, navy, navy, black);
2500            border-radius: 2vmin;
2501            padding: 1vmin;
2502            margin: 1vmin;
2503        }
2504
2505        #frivDaily {
2506            margin: auto;
2507            width: 60vw;
2508        }
2509
2510        #frivDailyInner {
2511            width: 80%;
2512            -webkit-text-stroke: calc(0.01em + 0.3vw) maroon;
2513            line-height: 110%;
2514            font-size: 6.5vw;
2515        }
2516
2517        @media (orientation: portrait) {
2518            #frivDaily {
2519                width: 100%;
2520            }
2521
2522            #frivDailyInner {
2523                font-size: 12vw;
2524            }
2525        }
2526
2527
2528
2529        #dateStrap {
2530            font-size: 2vw;
2531        }
2532
2533        #reactionFaceHappy,
2534        .reactionFaceSad,
2535        .reactionFaceEmpty {
2536            display: inline-block;
2537            width: 17vw;
2538        }
2539
2540        #achievementSlider {
2541            display: none;
2542            z-index: 20;
2543            text-align: center;
2544            color: maroon;
2545            font-size: 2.5vw;
2546
2547            letter-spacing: 0.1vmax;
2548            position: fixed;
2549            top: -30vh;
2550            width: 80vw;
2551            left: 9.5vw;
2552            padding: 1vmin;
2553            border-radius: 0 0 1vmin 1vmin;
2554            background-color: darkOrange;
2555            box-shadow: 2vmin 2vmin 2vmin rgba(0, 0, 0, 0.6);
2556            animation: achievementSlider 12s 2s ease-out forwards;
2557        }
2558
2559        @keyframes achievementSlider {
2560
2561            0%,
2562            100% {
2563                top: -30vh;
2564            }
2565
2566            10%,
2567            90% {
2568                top: 0;
2569            }
2570        }
2571
2572        /* for very hi-res screens */
2573        @media only screen and (min-width: 2000px) {
2574
2575            #friv4SchoolFactsContainer,
2576            #frivTips,
2577            #lbaJokes {
2578                font-size: 1.2vmax;
2579            }
2580        }
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590        /*
2591        DEVORY SECTION START v0.8
2592        */
2593
2594        .pixelated {
2595            image-rendering: optimizeSpeed;
2596            image-rendering: -moz-crisp-edges;
2597            image-rendering: pixelated;
2598            -ms-interpolation-mode: nearest-neighbor;
2599        }
2600
2601        .gameThumbContainer,
2602        .gameThumbContainerPuzzle,
2603        .gameThumbContainerExtra,
2604        .gameThumbContainerTest,
2605        .gameThumbContainerMini {
2606            position: relative;
2607            display: inline-block;
2608            font-size: calc(12px - 0.35vmin);
2609            border-radius: 30px 70px 30px 50px;
2610            border: 5px outset #aaf;
2611            overflow: hidden;
2612            color: #fff;
2613            text-shadow: 0.5vmin 0.5vmin 1.2vmin rgba(0, 0, 0, 1);
2614            width: 360px;
2615            height: 100px;
2616            max-width: 85vw;
2617            max-height: 23.6vw;
2618            box-shadow: 2vmin 2vmin 2vmin rgba(0, 0, 0, 0.4);
2619            /* to avoid flickering (seen on Chrome on Android) */
2620            transform: translate3d(0, 0, 0);
2621        }
2622
2623        .navy {
2624            color: navy;
2625        }
2626
2627        .brown {
2628            color: saddleBrown;
2629        }
2630
2631        .cyan {
2632            color: cyan;
2633        }
2634
2635        .lime {
2636            color: lime;
2637        }
2638
2639        .green {
2640            color: green;
2641        }
2642
2643        .orange {
2644            color: orange;
2645        }
2646
2647        .red {
2648            color: red;
2649        }
2650
2651
2652
2653        .yellow {
2654            color: yellow;
2655        }
2656
2657        .paleYellow {
2658            color: khaki;
2659        }
2660
2661        .halfOpacity {
2662            color: rgba(255, 255, 255, 0.3);
2663        }
2664
2665        .gameThumbGenColorPink,
2666        .gameThumbGenColorBlue,
2667        .gameThumbGenColorGreen,
2668        .gameThumbGenColorCyan,
2669        .gameThumbGenColorYellow,
2670        .gameThumbGenColorOrange,
2671        .gameThumbGenColorClear {
2672            position: absolute;
2673            display: inline-block;
2674            pointer-events: none;
2675            z-index: 10;
2676            background-image: linear-gradient(transparent, hotPink, hotPink);
2677            bottom: 0;
2678            left: 0;
2679            font-size: 14px;
2680            width: 95%;
2681            height: 23%;
2682            padding: 0 15px 0 5px;
2683            vertical-align: bottom;
2684        }
2685
2686        .gameThumbGenColorBlue {
2687            background-image: linear-gradient(transparent, dodgerBlue, dodgerBlue);
2688        }
2689
2690        .gameThumbGenColorGreen {
2691            background-image: linear-gradient(transparent, forestGreen, forestGreen);
2692        }
2693
2694        .gameThumbGenColorCyan {
2695            background-image: linear-gradient(transparent, cyan, cyan);
2696        }
2697
2698        .gameThumbGenColorYellow {
2699            background-image: linear-gradient(transparent, yellow, yellow);
2700        }
2701
2702        .gameThumbGenColorOrange {
2703            background-image: linear-gradient(transparent, orange, orangered, orange, orangered);
2704        }
2705
2706        .gameThumbGenColorClear {
2707            background-image: linear-gradient(transparent, midnightBlue);
2708        }
2709
2710        .gameThumbContainer:nth-child(even) {
2711            border-color: #ccf;
2712        }
2713
2714        .gameThumbContainerPuzzle {
2715            border: 5px outset khaki;
2716        }
2717
2718        .gameThumbContainerExtra {
2719            border: 5px outset lime;
2720        }
2721
2722        .gameThumbContainerTest {
2723            border: 5px outset red;
2724        }
2725
2726        .gameThumbContainerMini {
2727            width: 150px;
2728            height: 150px;
2729            max-width: none;
2730            max-height: none;
2731            border-radius: 20px;
2732            border: 6px outset #ddf;
2733            margin: 0.4vmax;
2734        }
2735
2736        .gameThumbContainerMini:hover {
2737            filter: brightness(1.5);
2738        }
2739
2740        #gfxSpeedSquare {
2741            position: fixed;
2742            z-index: 999;
2743            pointer-events: none;
2744            padding: 1vmin;
2745            font-size: 3vmin;
2746            color: white;
2747            text-align: left;
2748            background-image: radial-gradient(transparent, transparent);
2749        }
2750
2751        #monitorOutputDiv {
2752            font-size: 2vmin;
2753        }
2754
2755        /*
2756        DEVORY SECTION END
2757        */
2758
2759
2760
2761
2762        /* to adjust inline-block game icons for larger screens */
2763        @media only screen and (min-width: 1300px) {
2764
2765            .gameThumbContainer,
2766            .gameThumbContainerPuzzle,
2767            .gameThumbContainerExtra,
2768            .gameThumbContainerTest {
2769                margin: 0.4vmin;
2770                max-width: 432px;
2771                /* multiplier of 1.2  */
2772                max-height: 120px;
2773                /* border-radius: 3vmin 10vmin 3vmin 6vmin; */
2774            }
2775
2776        }
2777
2778
2779        /* xyz gamui promo*/
2780        .promo-overlay {
2781            position: fixed;
2782            top: 0;
2783            left: 0;
2784            width: 100vw;
2785            height: 100vh;
2786            background-color: rgba(10, 15, 30, 0.85);
2787            backdrop-filter: blur(8px);
2788            z-index: 999999;
2789            display: flex;
2790            align-items: center;
2791            justify-content: center;
2792            padding: 20px;
2793            box-sizing: border-box;
2794            cursor: pointer;
2795            opacity: 0;
2796            visibility: hidden;
2797            transition: opacity 0.4s ease, visibility 0.4s ease;
2798            user-select: none;
2799        }
2800
2801        /* Active State for Overlay */
2802        .promo-overlay.visible {
2803            opacity: 1;
2804            visibility: visible;
2805        }
2806
2807        /* Centered Promo Card Container */
2808        .promo-card {
2809            background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
2810            border: 2px solid #3b82f6;
2811            box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6), 0 0 30px rgba(59, 130, 246, 0.3);
2812            border-radius: 20px;
2813            padding: 40px;
2814            max-width: 650px;
2815            width: 100%;
2816            text-align: center;
2817            transform: scale(0.9);
2818            transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
2819        }
2820
2821        .promo-overlay.visible .promo-card {
2822            transform: scale(1);
2823        }
2824
2825        /* Typography Styles */
2826        .promo-text {
2827            color: #f8fafc;
2828            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
2829            font-size: 1.55rem;
2830            line-height: 1.6;
2831            margin: 0 0 20px 0;
2832        }
2833
2834        .promo-text strong {
2835            color: #60a5fa;
2836        }
2837
2838        .promo-text.highlight {
2839            font-size: 1.55rem;
2840            font-weight: 600;
2841            color: #facc15;
2842            margin-bottom: 30px;
2843        }
2844
2845        .promo-cta {
2846            display: inline-block;
2847            background-color: #2563eb;
2848            color: #ffffff;
2849            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
2850            font-size: 1.1rem;
2851            font-weight: bold;
2852            padding: 14px 28px;
2853            border-radius: 50px;
2854            box-shadow: 0 4px 15px rgba(37, 99, 235, 0.4);
2855            animation: pulse 5s infinite;
2856        }
2857
2858        @keyframes pulse {
2859            0% {
2860                transform: scale(1);
2861                box-shadow: 0 4px 15px rgba(37, 99, 235, 0.4);
2862            }
2863
2864            50% {
2865                transform: scale(1.5);
2866                box-shadow: 0 6px 22px rgba(37, 99, 235, 0.7);
2867            }
2868
2869            100% {
2870                transform: scale(1);
2871                box-shadow: 0 4px 15px rgba(37, 99, 235, 0.4);
2872            }
2873        }
2874
2875        .greenCRT {
2876            filter: grayscale(1) sepia(1) hue-rotate(70deg) saturate(5);
2877        }
2878    </style>
2879
2880</head>
2881
2882<body onload="pageFullyLoaded()">
2883
2884    
2884<script>
2885        //just about the FIRST custom js to execute...
2886        var runExecutionIssueDetect = false;
2887        if (Math.random() < 0.003) {
2888            runExecutionIssueDetect = true;
2889        }
2890        if (runExecutionIssueDetect) {
2891            var eid1 = document.createElement("IMG");
2892            eid1.setAttribute("src", "https://whos.amung.us/swidget/nwlsf49q6uul.gif");
2893            eid1.setAttribute("id", "executionIssueDetectDiv1");
2894            document.body.appendChild(eid1);
2895        }
2896    </script>
2896
2897
2898    <div id=lcp></div>
2899
2900    <div id=gfxSpeedSquare></div>
2901
2902    <div id=dBugBlinker>D-E-B-U-G&nbsp;&nbsp;&nbsp;&nbsp;M-O-D-E</div>
2903
2904    <div id=userAlert>Ooops! Sorry, there seems to be a loading error.<br>It could be us, or it could be your browser. Please make sure you are loading the site normally on a modern browser like Chrome or Firefox, and without proxies / translators etc.<br><br>
2905        <a class=userAlertLink href="https://www.friv.com/useralert.html" target="_top">Try&nbsp;reloading&nbsp;friv.com</a>
2906        <a class=userAlertLink href="https://www.frivmax.com/?frua" target="_top">Visit&nbsp;frivmax.com</a>
2907        <a class=userAlertLink href="https://www.yurk.com/?frua" target="_top">Visit&nbsp;yurk.com</a>
2908    </div>
2909
2910
2911
2912    <div id=searchBoxContainer>
2913        <div id=searchBox>
2914            <div class="searchLetter notranslate" onclick="displayGames('*', 'A')">A</div>
2915            <div class="searchLetter notranslate" onclick="displayGames('*', 'B')">B</div>
2916            <div class="searchLetter notranslate" onclick="displayGames('*', 'C')">C</div>
2917            <div class="searchLetter notranslate" onclick="displayGames('*', 'D')">D</div>
2918            <div class="searchLetter notranslate" onclick="displayGames('*', 'E')">E</div>
2919            <div class="searchLetter notranslate" onclick="displayGames('*', 'F')">F</div>
2920            <div class="searchLetter notranslate" onclick="displayGames('*', 'G')">G</div>
2921            <div class="searchLetter notranslate" onclick="displayGames('*', 'H')">H</div>
2922            <div class="searchLetter notranslate" onclick="displayGames('*', 'I')">I</div>
2923            <div class="searchLetter notranslate" onclick="displayGames('*', 'J')">J</div>
2924            <div class="searchLetter notranslate" onclick="displayGames('*', 'K')">K</div>
2925            <div class="searchLetter notranslate" onclick="displayGames('*', 'L')">L</div>
2926            <div class="searchLetter notranslate" onclick="displayGames('*', 'M')">M</div>
2927            <div class="searchLetter notranslate" onclick="displayGames('*', 'N')">N</div>
2928            <div class="searchLetter notranslate" onclick="displayGames('*', 'O')">O</div>
2929            <div class="searchLetter notranslate" onclick="displayGames('*', 'P')">P</div>
2930            <div class="searchLetter notranslate" onclick="displayGames('*', 'Q')">Q</div>
2931            <div class="searchLetter notranslate" onclick="displayGames('*', 'R')">R</div>
2932            <div class="searchLetter notranslate" onclick="displayGames('*', 'S')">S</div>
2933            <div class="searchLetter notranslate" onclick="displayGames('*', 'T')">T</div>
2934            <div class="searchLetter notranslate" onclick="displayGames('*', 'U')">U</div>
2935            <div class="searchLetter notranslate" onclick="displayGames('*', 'V')">V</div>
2936            <div class="searchLetter notranslate" onclick="displayGames('*', 'W')">W</div>
2937            <div class="searchLetter notranslate" onclick="displayGames('*', 'X')">X</div>
2938            <div class="searchLetter notranslate" onclick="displayGames('*', 'Y')">Y</div>
2939            <div class="searchLetter notranslate" onclick="displayGames('*', 'Z')">Z</div>
2940            <div class=searchLetter onclick="displayGames('*', '0')">0-9</div><br>
2941            <div class=searchLetter onclick="displayGames('2Player', '*')">2 Player</div> <!-- 15.79% -->
2942            <div class=searchLetter onclick="displayGames('3D', '*')">3D</div> <!-- -->
2943            <div class=searchLetter onclick="displayGames('Action', '*')">Action</div> <!-- 9.65% -->
2944            <div class=searchLetter onclick="displayGames('Adventure', '*')">Adventure</div> <!-- 12.66% -->
2945            <!-- <div class=searchLetter onclick="displayGames('Card', '*')">Card</div> -->
2946            <!-- <div class=searchLetter onclick="displayGames('Cute', '*')">Cute</div> -->
2947            <div class=searchLetter onclick="displayGames('Dressup', '*')">Dressup</div> <!-- 11.63% -->
2948            <div class=searchLetter id=combatRemove onclick="displayGames('Combat', '*')">Combat</div> <!-- 8.33% -->
2949            <div class=searchLetter onclick="displayGames('Creative', '*')">Creative</div> <!-- 6.3% -->
2950            <div class=searchLetter onclick="displayGames('Food', '*');">Food</div> <!-- new test -->
2951            <div class=searchLetter id=halloweenRemove onclick="displayGames('Halloween', '*')">Halloween</div>
2952            <div class=searchLetter id=jobsRemove onclick="displayGames('Jobs', '*');">Jobs</div> <!-- 5.34% -->
2953            <div class=searchLetter id=mathRemove onclick="displayGames('Math', '*')">Math</div>
2954            <div class=searchLetter onclick="displayGames('Motorsport', '*')">Motorsport</div> <!-- 6.51% -->
2955            <div class=searchLetter onclick="displayGames('New', '*')">New</div>
2956            <div class=searchLetter id=platformRemove onclick="displayGames('Platform', '*')">Platform</div> <!-- 3.68% -->
2957            <div class=searchLetter onclick="displayGames('Puzzle', '*')">Puzzle</div> <!-- 5.06% -->
2958            <div class=searchLetter id=quizRemove onclick="displayGames('Quiz', '*')">Quiz</div> <!-- 5.06% -->
2959            <!-- <div class=searchLetter onclick="displayGames('Retro', '*')">Retro</div> 3.03% -->
2960            <!-- <div class=searchLetter onclick="displayGames('RPG', '*')">RPG</div> not enough tags -->
2961            <div class=searchLetter id=shootingRemove onclick="displayGames('Shooting', '*')">Shooting</div> <!-- 5.9% -->
2962            <div class=searchLetter onclick="displayGames('Sport', '*')">Sport</div> <!-- 6.82% -->
2963            <!-- <div class=searchLetter onclick="displayGames('Strategy', '*')">Strategy</div> 4.3% -->
2964            <div class=searchLetter id=wordRemove onclick="displayGames('Word', '*')">Word</div>
2965            <div class=searchLetter id=landscapeRemove onclick="displayGames('Landscape', '*')">Landscape</div>
2966            <div class=searchLetter id=portraitRemove onclick="displayGames('Portrait', '*')">Portrait</div>
2967            <!-- <div class=searchLetter onclick="displayGames('Kids', '*')">Kids</div> -->
2968            <!-- <div class=searchLetter onclick="displayGames('Teens', '*')">Teens</div> -->
2969            <!-- <div class=searchLetter onclick="displayGames('Adults', '*')">Adults</div> -->
2970            <!-- <div class=searchLetter onclick="sortGamesAlpha()">List A-Z</div> always sorted by alpha by default -->
2971            <!-- <div class=searchLetter onclick="sortGamesDate()">List By Date</div> -->
2972            <!-- <div class=searchLetter onclick="sortGamesPopularity()">Most Popular</div> -->
2973            <div class=searchLetter id=xmasRemove onclick="displayGames('Xmas', '*')">Xmas</div>
2974            <div class=searchLetter onclick="displayGames('*', '*')">All Games A-Z</div>
2975            <div id=searchResultText></div>
2976        </div>
2977    </div>
2978
2979    <div id=dropGfx></div>
2980
2981    <!-- temp removed during testing
2982    <div id=lensFlareA></div>
2983    <div id=lensFlareB></div>
2984    <div id=lensFlareC></div>
2985    <div id=lensFlare1></div>
2986    <div id=lensFlare2></div>
2987    <div id=lensFlare3></div>
2988    -->
2989
2990    <div id=achievementSlider></div>
2991
2992    <div id=logoContainer>
2993        <div id=searchButton onclick="showSearchBox()"></div>
2994        <div id=colourSelector onclick="changeBackgroundColour()"></div>
2995        <div id=topPromoButtonsContainer>
2996            <div id=topPromoButton1 onclick="showTeachersParentsMessage()">Info for teachers and parents</div>
2997        </div>
2998
2999        <div id=logoLeftShine></div>
3000        <div id=logoRightShadow></div>
3001
3002        <div id=logoLensFlareA></div>
3003        <div id=logoLensFlareB></div>
3004        <div id=logo></div>
3005        <div id=logoSpinner></div>
3006        <div id=welcome></div>
3007    </div>
3008
3009    <!-- qqq -->
3010
3011    <div id=friv4SchoolFactsContainer>
3012
3013        <div id=friv4SchoolFactsContents onclick="showFriv4SchoolFact()"></div>
3014        <div id=friv4SchoolFactBottomBar><br>We're trying to make these facts as fun and as interesting as possible. Please help by voting on a few each day!<br><br><span class=voteThumbSmall onclick="friv4SchoolFactsVote('U')">👍</span><span class=voteThumbSmall onclick="friv4SchoolFactsVote('D')">👎</span></div>
3015        <div id=friv4SchoolFactsThankyou><br>Thank you!</div>
3016
3017    </div>
3018
3019
3020    <div id=topPromoTextLink></div>
3021
3022    <div id=topDailyJoke></div>
3023
3024    <!-- area for promo -->
3025
3026  
3027
3028
3029
3030
3031
3032
3033
3034
3035    <div id=loadingGamesExpander>LOADING GAMES</div>
3036
3037    <div id=lbaAlternative></div>
3038
3039    <!--
3040    <img id=lbaInstagram src="z/assets/img/frivIcon.png" alt="Instagram">
3041    -->
3042
3043    <div id=performanceAlert></div>
3044
3045    <div id=headerSearchResult></div>
3046
3047    <div id=scrollToPlay class=blink>▼ SCROLL TO PLAY! ▼</div>
3048
3049    <main id=gamesBlock></main>
3050
3051    <div id=desktopPrmo>Missing a game? / ¿Te pierdes un juego? / Perdeu um jogo? / Brakuje Ci gry?<br>Some games have moved to <a href="https://www.morefriv.com/" target="_blank">morefriv.com</a> ...see you there!</div> <!-- For MANY more games be sure to visit friv.com on a computer. See you there! -->
3052
3053    <div id=frivTips></div>
3054
3055    <div id=bottomPromoTextLink><a href="https://www.werty.me/" target="_blank">Games blocked at school? Click to try... <span class=lime>werty.me</span> ...it checks over 30 popular games sites to see if they are blocked or unblocked, and then you can choose where to play. Show your friends and they will thank you!<br>(opens in a new tab)</a> </div>
3056
3057    <div id=devoryGames class=scroll-animate>
3058        <div id=devoryGamesMainTitle></div>
3059        <!-- <div id=devoryGamesSubtitle>FRIV TOP PICKS - QUICK ACCESS<br>GREAT GAMES ON OTHER SITES</div> -->
3060        <div id=devoryGamesContent></div>
3061    </div>
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072    <div id=frivDaily class=scroll-animate>
3073
3074        <table id=todaysDate>
3075            <tbody>
3076                <tr>
3077                    <td rowspan="2" id=todaysDateEmoji1>😀</td>
3078                    <td id=frivDailyInner>Friv Daily</td>
3079                    <td rowspan="2" id=todaysDateEmoji2>😀</td>
3080                </tr>
3081                <tr>
3082                    <td id=dateStrap></td>
3083                </tr>
3084            </tbody>
3085        </table>
3086
3087        <div class=sectionContainer>
3088            <div class=emojiIdentifier>🎶</div>
3089            <div id=chiptune onclick="playChiptune()">Tap To Play / Pause<br>Daily Chiptune</div>
3090            <audio id=chiptuneAudio preload=none>
3091                <source src="about:blank" type="audio/mpeg">
3092            </audio>
3093            <div id=chiptuneBottomBar><span class=voteThumb onclick="contentVote('Chiptune','Up Vote')">👍</span><span class=voteThumb onclick="contentVote('Chiptune','Down Vote')">👎</span></div>
3094        </div>
3095
3096
3097        <div class=sectionContainer>
3098            <div class=emojiIdentifier>🙈</div>
3099            <div id=cutePicture onclick="showCutePicture()">Tap For<br>Daily Cute Picture</div>
3100            <div id=cuteImage></div>
3101            <div id=cuteImageBottomBar><span class=voteThumb onclick="contentVote('Cute Picture','Up Vote')">👍</span><span class=voteThumb onclick="contentVote('Cute Picture','Down Vote')">👎</span></div>
3102        </div>
3103
3104        <div class=sectionContainer>
3105            <div class=emojiIdentifier>❓</div>
3106            <div id=puzzle onclick="showPuzzle()">Tap For<br>Daily Puzzle</div>
3107            <div id=puzzleImage onclick="showPuzzleSolution()">
3108                <div id=puzzleMessage></div>
3109            </div>
3110            <div id=puzzleBottomBar><span class=voteThumb onclick="contentVote('Puzzle','Up Vote')">👍</span><span class=voteThumb onclick="contentVote('Puzzle','Down Vote')">👎</span></div>
3111        </div>
3112
3113        <div class=sectionContainer>
3114            <div id=famousQuoteEmoji class=emojiIdentifier>
3114💬</div>
3115            <div id=famousQuote></div>
3116            <div id=famousQuoteBottomBar><span class=voteThumb onclick="contentVote('Famous Quote','Up Vote')">👍</span><span class=voteThumb onclick="contentVote('Famous Quote','Down Vote')">👎</span></div>
3117        </div>
3118
3119        <div class=sectionContainer>
3120            <div id=dailyGIFEmoji class=emojiIdentifier>🙀</div>
3121            <div id=dailyGIF onclick="showDailyGIF()">Tap For<br>Daily GIFs</div>
3122            <div id=dailyGIFImage onclick="showDailyGIF()">
3123                <div id=GIFMessage></div>
3124            </div>
3125            <div id=dailyGIFBottomBar><span class=voteThumb onclick="contentVote('Daily GIFs','Up Vote')">👍</span><span class=voteThumb onclick="contentVote('Daily GIFs','Down Vote')">👎</span></div>
3126        </div>
3127
3128        <div class=sectionContainer>
3129            <div id=jokeEmoji class=emojiIdentifier>😆</div>
3130            <div id=jokeA onclick="showJokeAnswer()"></div>
3131            <div id=jokeB onclick="showJokeAnswer()">Tap For The Answer!</div>
3132            <div id=jokeBottomBar><span class=voteThumb onclick="contentVote('Joke','Up Vote')">👍</span><span class=voteThumb onclick="contentVote('Joke','Down Vote')">👎</span></div>
3133        </div>
3134
3135        <div class=sectionContainer>
3136            <div class=emojiIdentifier>📢</div>
3137            <div id=soundBoardA onclick="showSoundBoard()">Tap For<br>Daily Soundboard</div>
3138            <div id=soundBoardB>
3139
3140                <div id=sound0 class=soundButton></div>
3141                <div id=sound1 class=soundButton></div>
3142                <div id=sound2 class=soundButton></div>
3143                <div id=sound3 class=soundButton></div>
3144                <div id=sound4 class=soundButton></div>
3145                <div id=sound5 class=soundButton></div>
3146                <div id=sound6 class=soundButton></div>
3147                <div id=sound7 class=soundButton></div>
3148                <div id=sound8 class=soundButton></div>
3149                <div id=sound9 class=soundButton></div>
3150
3151                <div id=storyIdea></div>
3152            </div>
3153        </div>
3154
3155        <div class=sectionContainer>
3156            <div class=emojiIdentifier>🎯</div>
3157            <div id=reactionTestA>Tap For<br>Reaction Test</div>
3158            <div id=reactionTestB>
3159                <div id=reactionTestFaces></div>
3160                <div id=reactionTestText>
3161                </div>
3162            </div>
3163        </div>
3164
3165        <div class=sectionContainer>
3166            <div id=frivolousFactEmoji class=emojiIdentifier>📚</div>
3167            <div id=frivolousFact></div>
3168            <div id=frivolousFactBottomBar><span class=voteThumb onclick="contentVote('Fact','Up Vote')">👍</span><span class=voteThumb onclick="contentVote('Fact','Down Vote')">👎</span></div>
3169        </div>
3170
3171        <div class=sectionContainer>
3172            <div class=emojiIdentifier>🌋</div>
3173            <div id=amazingPicture onclick="showAmazingPicture()">Tap For<br>Daily Amazing Picture</div>
3174            <div id=amazingImage></div>
3175            <div id=amazingImageBottomBar><span class=voteThumb onclick="contentVote('Amazing Picture','Up Vote')">👍</span><span class=voteThumb onclick="contentVote('Amazing Picture','Down Vote')">👎</span></div>
3176        </div>
3177
3178        <div class=sectionContainer>
3179            <div class=emojiIdentifier>🎨</div>
3180            <div id=streetArt onclick="showStreetArt()">Tap For<br>Daily Street Art</div>
3181            <div id=streetArtImage></div>
3182            <div id=streetArtBottomBar><span class=voteThumb onclick="contentVote('Street Art','Up Vote')">👍</span><span class=voteThumb onclick="contentVote('Street Art','Down Vote')">👎</span></div>
3183        </div>
3184
3185
3186        <div class=sectionContainer>
3187            <div class=emojiIdentifier id=loveTesterEmoji>💕</div>
3188            <div id=loveTesterA onclick="showLoveTester()">Tap For<br>Love Tester</div>
3189            <div id=loveTesterB>
3190            </div>
3191        </div>
3192
3193        <div class=sectionContainer>
3194            <div id=riddleEmoji class=emojiIdentifier>💡</div>
3195            <div id=riddleContainer>
3196                <div id=riddleA onclick="showRiddleAnswer()"></div>
3197                <div id=riddleB onclick="showRiddleAnswer()"></div>
3198                <div id=riddleChangeDifficulty onclick="changeRiddleDifficulty()">Change<br>Difficulty</div>
3199            </div>
3200        </div>
3201
3202        <div class=sectionContainer>
3203            <div id=limerickEmoji class=emojiIdentifier>📜</div>
3204            <div id=limerickContainer>
3205                <div id=limerickA onclick="showLimerick()">Tap For Daily Limerick</div>
3206                <div id=limerickB></div>
3207                <div id=limerickBottomBar><span class=voteThumb onclick="contentVote('Limerick','Up Vote')">👍</span><span class=voteThumb onclick="contentVote('Limerick','Down Vote')">👎</span></div>
3208            </div>
3209        </div>
3210
3211        <div class=sectionContainer>
3212            <div class=emojiIdentifier>👓</div>
3213            <div id=opticalIllusion onclick="showOpticalIllusion()">Tap For<br>Daily Optical Illusion</div>
3214            <div id=opticalIllusionImage onclick="showOpticalIllusionSolution()">
3215                <div id=opticalIllusionMessage></div>
3216            </div>
3217            <div id=opticalIllusionBottomBar><span class=voteThumb onclick="contentVote('Optical Illusion','Up Vote')">👍</span><span class=voteThumb onclick="contentVote('Optical Illusion','Down Vote')">👎</span></div>
3218        </div>
3219
3220        <div class=sectionContainer>
3221            <div id=tongueTwisterEmoji class=emojiIdentifier>👅</div>
3222            <div id=tongueTwisterContainer>
3223                <div id=tongueTwisterA onclick="showTongueTwister()">Tap For Daily<br>Tongue Twister</div>
3224                <div id=tongueTwisterB></div>
3225                <div id=tongueTwisterBottomBar><span class=voteThumb onclick="contentVote('Tongue Twister','Up Vote')">👍</span><span class=voteThumb onclick="contentVote('Tongue Twister','Down Vote')">👎</span></div>
3226            </div>
3227        </div>
3228
3229        <div class=sectionContainer>
3230            <div id=storyEmoji class=emojiIdentifier>🌛</div>
3231            <div id=storyContainer>
3232                <div id=storyInfoButton>Info</div>
3233                <div id=storyA>Tap For Daily<br>Bedtime Story</div>
3234                <div id=storyB>
3235                    <div id=storyTitleContainer>
3236                        <div id=storyTitle></div>
3237                    </div>
3238                    <div id=storyDescription1></div>
3239                    <div id=storyDescription2></div>
3240
3241                    <div id=storyPrevButton class=redButtonSmall onclick="prevStory()">PREV</div>
3242                    <div id=storyPlayPauseButton class=redButton onclick="playPauseStory()"></div>
3243                    <div id=storyNextButton class=redButtonSmall onclick="nextStory()">NEXT</div>
3244                </div>
3245                <div id=storyC>
3246
3247                    <audio id=storyAudio onpause="storyPaused()" onplay="storyPlayed()" controls>
3248                        <!-- <source src="z/frivdaily/stories/jack-and-the-beanstalk-BAD-QUALITY.mp3" type="audio/mpeg"> -->
3249                    </audio>
3250                </div>
3251
3252
3253                <div id=storyBottomBar>
3254                    <div id=pleaseRateStory></div><span class=voteThumb onclick="contentVote('Story','Up Vote')">👍</span><span class=voteThumb onclick="contentVote('Story','Down Vote')">👎</span>
3255                </div>
3256            </div>
3257            <div id=storyD></div>
3258        </div>
3259
3260
3261
3262        <div class=sectionContainer>
3263            <div class=emojiIdentifier>📹</div>
3264            <div id=funnyVideo onclick="showFunnyVideo()">Tap For<br>Daily Funny Video</div>
3265            <div id=funnyVideoBox>
3266                <video id=funnyVideoContainer controls></video>
3266 <!-- autoplay removed -->
3267            </div>
3268            <div id=funnyVideoBottomBar><span class=voteThumb onclick="contentVote('Funny Video','Up Vote')">👍</span><span class=voteThumb onclick="contentVote('Funny Video','Down Vote')">👎</span></div>
3269        </div>
3270
3271        <div id=puzzleImagePreload></div>
3272        <div class=reactionImagePreload id=imagePreloadHappy></div>
3273        <div class=reactionImagePreload id=imagePreloadSad></div>
3274
3275    </div>
3276
3277
3278    <div id=footerSection>
3279
3280        <div class=spacer></div>
3281
3282        <h1 id=siteDescription>Play unblocked games at Friv! We have only the very best free online games, and they work on any device. There are no ad interruptions, so just start playing!</h1>
3283
3284        <div class=spacer></div>
3285
3286        <!--
3287    <div id=shareContainer>
3288        <div id=socialShare>
3289            <a href="https://twitter.com/intent/tweet?text=Great%20games%20for%20mobile%20and%20desktop...%20#friv%20https://www.friv.com/" target="_blank">Share On Twitter</a><br>
3290            <a href="https://www.facebook.com/sharer/sharer.php?u=https://www.friv.com/" target="_blank">Share On Facebook</a>
3291        </div>
3292        <div id=shareMessage></div>
3293    </div>
3294    -->
3295
3296
3297
3298        <div id=feedback>
3299            <!-- validate HTML before adding label! -->
3300            <!-- for accessibility -->
3301            <h3>Feedback</h3>
3302            <!--Hello! We're trying to make Friv the best it can be. Have you found any bugs or issues? Right now we especially want to know if you found any games that share the same music. Please let us know! Many thanks!-->
3303            <!--Hello! We're trying to make Friv the best it can be. Have you found any bugs or issues? Or do you have any advice for us? Maybe tell us your best joke. We really appreciate your help. Thank you!   --   Or... if Friv isn't your favorite place to play games, please tell us what is and why!-->
3304            <!--Hello! We're trying to make Friv the best it can be. Have you ever found any bugs or issues? Or maybe tell us how and where you use Friv. On a tablet, at home or at school? We really appreciate your help. Thank you!</p> -->
3305            <p id=feedbackIntroText data-nosnippet>Hello! We're trying to make Friv the best it can be. Have you ever found any bugs or issues? Please let us know! Many thanks!</p>
3306            <form id="feedback1">
3307                <textarea class=feedbackInput cols="25" rows="1" maxlength="15" placeholder="Your first name (optional)"></textarea>
3308                <textarea class=feedbackInput cols="40" rows="5" maxlength="250" placeholder="Your message (max 250 characters)"></textarea>
3309            </form>
3310            <button class=searchLetter onclick="submitFeedback()">Send</button>
3311        </div>
3312
3313        <div id=bottomPoo></div>
3314        <div class=hueBlock></div>
3315        <div id=copyright>
3316            <div class=bottomLinks id=achievementSignifier></div>
3317            <p>Copyright &copy; 2006 <span id=copyrightYear>onwards</span>. Friv is a Registered Trademark. All Rights Reserved. This is a genuine Friv site.</p>
3318
3319            <a class=bottomLinks href=privacy.html>Privacy&nbsp;&&nbsp;Cookies&nbsp;Policy</a><br><br>
3320            <!-- <span id=manageRevoke class=bottomLinks onclick="googlefc.callbackQueue.push(googlefc.showRevocationMessage)">Manage&nbsp;&&nbsp;Revoke&nbsp;Cookie&nbsp;Consent</span><br><br> -->
3321            <!-- <a class=bottomLinks href=help.html>Help&nbsp;-&nbsp;About&nbsp;-&nbsp;FAQs&nbsp;-&nbsp;Fakes&nbsp;-&nbsp;Old&nbsp;Friv</a><br><br> -->
3322            <a class=bottomLinks href="help.html">Help</a>&nbsp;-&nbsp;<a class=bottomLinks href="help.html#about">About</a>&nbsp;-&nbsp;<a class=bottomLinks href="help.html#faqs">FAQs</a>&nbsp;-&nbsp;<a class=bottomLinks href="help.html#fakes">Fakes</a>&nbsp;-&nbsp;<a class=bottomLinks href="help.html#oldfriv">Old Friv</a><br><br>
3323
3324            <div id=dBugText></div>
3325        </div>
3326        <div class=hueBlock></div>
3327        <audio id=logoAudio preload=none>
3328            <source src="about:blank" type="audio/mpeg">
3329        </audio>
3330
3331
3332    </div> <!-- footerSection -->
3333
3334    <!-- xyz gamui promo -->
3335    <!-- You are smart! You are visiting friv.com which is a super-popular site with loads of games and almost no ads. Make sure you remember it - and try it on your phone or tablet too! :) -->
3336    <!-- Good news! You have been selected for early-access to try some new games on another site we are still testing. -->
3337    <!-- Click to open Gamui -->
3338    <div id="promo-overlay" class="promo-overlay hidden" aria-hidden="true">
3339        <div class="promo-card">
3340            <p class="promo-text">
3341                ¡Eres inteligente! Estás visitando <strong>friv.com</strong>, que es un sitio súper popular con montones de juegos y casi sin anuncios. ¡Asegúrate de recordarlo y pruébalo también en tu teléfono o tableta! :)
3342            </p>
3343            <p class="promo-text highlight">
3344                ¡Buenas noticias! Has sido seleccionado para acceder de manera anticipada y probar algunos juegos nuevos en otro sitio que todavía estamos probando.
3345            </p>
3346            <span class="promo-cta">Haz clic para abrir Gamui</span>
3347        </div>
3348    </div>
3349
3350
3351    
3351<script>
3352        //INITIALIZATIONS
3353        /////////////////
3354
3355        var build = "Vx.xx";
3356        var debug = false;
3357        var debugSchool = false; //spoof school
3358
3359        if (debug || debugSchool) {
3360            dBugBlinker.style.display = "block";
3361        }
3362
3363        var lang = navigator.language.toLowerCase();
3364
3365        var british = false;
3366
3367        if (lang == "en-gb") {
3368            british = true;
3369        }
3370
3371        if (debug) {
3372            lang = "es"; //spoof lang
3373            //["en", "es", "pt", "fr", "pl", "id", "el", "hr", "sk", "it", "ro", "da", "de", "nl"];
3374        }
3375        var shortLang = lang.slice(0, 2);
3376
3377        //TEMP BREAKPOINT FACILITY
3378        var breakPoint = false;
3379        if (Math.random() < 0.001) { //DISABLED
3380            breakPoint = true;
3381        }
3382
3383        if (testVer && !debug) {
3384            lba.innerHTML = "ADS REMOVED ON TEST PAGE TO AVOID ACCIDENTAL CLICKS WHILE DEBUGGING ETC.";
3385        }
3386
3387        var ref = window.location.search.substring(1);
3388
3389        var userAgent = navigator.userAgent || navigator.vendor || window.opera;
3390
3391        var host = window.location.hostname;
3392
3393        var isSchool = false;
3394        if (host.indexOf("school") > -1 || window.location.href.indexOf("school") > -1 || debugSchool) {
3395            isSchool = true;
3396        }
3397
3398        //disable rmb - avoids accidental clicks
3399        document.addEventListener('contextmenu', event => event.preventDefault());
3400
3401        ////////// GET USER OS START V0.88
3402        ////////////////////////////////// //https://deviceatlas.com/blog/list-of-user-agent-strings
3403
3404        var os = "Desktop"; //default this will mostly be Windows + Chrome OS, Mac(?) and Linux. Note pop index same as Windows
3405        var userAgent = userAgent.toLowerCase();
3406
3407        var hasTouchPoints = false;
3408        if (navigator.maxTouchPoints > 0) {
3409            hasTouchPoints = true;
3410        }
3411
3412        if (/android/i.test(userAgent) && hasTouchPoints) {
3413            os = "Android";
3414        }
3415
3416        //initially for all ipads, including newer
3417        if (navigator.platform === 'iPad') {
3418            os = "iPadOld";
3419        }
3420
3421        if (navigator.platform === 'MacIntel' && hasTouchPoints) {
3422            os = "iPadNew";
3423        }
3424
3425        if (/iphone|ipod/.test(userAgent) && !window.MSStream) {
3426            os = "iPhone";
3427        }
3428
3429        var deviceCategory = os;
3430
3431        var androidVersion = 0;
3432        if (userAgent.indexOf("android") >= 0) {
3433            androidVersion = parseFloat(userAgent.slice(userAgent.indexOf("android") + 8));
3434        }
3435
3436        function getAndroidVersion() {
3437            var match = userAgent.toLowerCase().match(/android\s([0-9\.]*)/i);
3438            return match ? parseInt(match[1], 10) : false;
3439        };
3440
3441        var androidVersionTruncated = getAndroidVersion();
3442
3443        gestureType = "Click";
3444
3445        var touchDevice = false; // could perhaps better use...  typeof window.orientation == "undefined" (important for Android devices which are NOT touch).
3446        if (os == "Android" || os == "iPadOld" || os == "iPadNew" || os == "iPhone") {
3447            touchDevice = true;
3448            gestureType = "Tap";
3449        }
3450
3451        var newMac = false;
3452
3453        if (userAgent.indexOf("Intel Mac OS X 12") >= 0 || userAgent.indexOf("Intel Mac OS X 13") >= 0 || userAgent.indexOf("Intel Mac OS X 14") >= 0 || userAgent.indexOf("Intel Mac OS X 15") >= 0) {
3454            newMac = true;
3455        }
3456
3457        ////////// GET USER OS END
3458        //////////////////////////
3459
3460
3461
3462        //FRIV EXTRA
3463        ////////////
3464        const d = new Date();
3465        let extraCipher = window.btoa(d.getDate());
3466
3467        var extraInvocation = false;
3468        if (window.location.href.indexOf(extraCipher) > -1) {
3469            extraInvocation = true;
3470        }
3471
3472        //DATES
3473        ///////
3474        var today = new Date();
3475
3476        //year, month (from 0), day, hour, minute, second, and millisecond (spoof)
3477        //today = new Date(2022, 2, 1, 0, 0, 0, 0);  //test first of month
3478        //today = new Date(2022, 1, 14, 0, 0, 0, 0);  //test valentines
3479        //today = new Date(2022, 2, 17, 0, 0, 0, 0);  //test paddy
3480        //today = new Date(2022, 3, 1, 0, 0, 0, 0);  //test april fools
3481        //today = new Date(2022, 4, 8, 0, 0, 0, 0);  //test mothers
3482        //today = new Date(2022, 5, 21, 0, 0, 0, 0);  //test fathers day
3483        //today = new Date(2022, 9, 1, 0, 0, 0, 0);  //test pre halloween
3484        //today = new Date(2022, 9, 15, 0, 0, 0, 0);  //test mid october
3485        //today = new Date(2022, 9, 31, 0, 0, 0, 0);  //test halloween
3486        //today = new Date(2022, 11, 20, 0, 0, 0, 0);  //test dec 20th
3487        //today = new Date(2022, 11, 21, 0, 0, 0, 0);  //test dec 21st
3488        //today = new Date(2022, 11, 22, 0, 0, 0, 0);  //test dec 22nd
3489        //today = new Date(2022, 11, 23, 0, 0, 0, 0);  //test dec 23rd
3490        //today = new Date(2022, 11, 24, 0, 0, 0, 0);  //test xmas eve
3491        //today = new Date(2022, 10, 28, 0, 0, 0, 0);  //test pre xmas
3492        //today = new Date(2022, 11, 25, 0, 0, 0, 0);  //test xmas
3493        //today = new Date(2022, 11, 26, 0, 0, 0, 0);  //test boxing day
3494        //today = new Date(2022, 11, 31, 0, 0, 0, 0);  //test new years eve
3495        //today = new Date(2022, 0, 1, 0, 0, 0, 0);  //test new years day
3496        //today = new Date(2023, 2, 10, 0, 0, 0, 0);  //test specific date
3497
3498        var daylist = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
3499        var monthlist = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "
3499November", "December"];
3500
3501        const hour = today.getHours();
3502        const day = today.getDay();
3503        const month = today.getMonth();
3504        const year = today.getYear();
3505        const date = today.getDate();
3506
3507        function getDayOfYear(date) {
3508            const startOfYear = new Date(date.getFullYear(), 0, 0);
3509            return Math.floor((date - startOfYear) / (1000 * 60 * 60 * 24));
3510        }
3511
3512        const dayOfYear = getDayOfYear(today);
3513
3514        var specialDay;
3515        var specialPeriod;
3516
3517        if (date == 1) {
3518            specialDay = "firstOfMonth";
3519        }
3520
3521        if (date == 13 && day == 5) {
3522            specialDay = "friday13th";
3523        }
3524
3525        if ((month == 1 && (date > 9 && date < 15))) { //5 days of valentines
3526            specialPeriod = "valentines";
3527        }
3528
3529        if (month == 1 && date == 14) {
3530            specialDay = "valentinesDay";
3531        }
3532
3533        // Easter Sunday 2026 is April 5th
3534        // month == 2 is March, month == 3 is April
3535
3536        // Period from March 25th to April 5th
3537        if ((month == 2 && date >= 25) || (month == 3 && date <= 5)) {
3538            specialPeriod = "easter";
3539        }
3540
3541
3542
3543        //NOTE OVERLAP WITH APRIL FOOLS DAY
3544        // Easter Sunday specifically
3545        if (month == 3 && date == 5) {
3546            specialDay = "easterSunday";
3547        }
3548
3549        if (month == 2 && date == 17) {
3550            specialDay = "stPatricksDay";
3551        }
3552
3553
3554
3555
3556        if (month == 3 && date == 1) {
3557            specialDay = "aprilFoolsDay";
3558        }
3559
3560        if (month == 5 && date > 14 && date < 22 && day == 0) {
3561            specialDay = "fathersDay";
3562        }
3563
3564        if (month == 9) { //all of october
3565            specialPeriod = "preHalloween";
3566        }
3567
3568        if ((month == 9 && date > 7) || (month == 10 && date < 1)) { //overwrites preHalloween
3569            specialPeriod = "halloween";
3570        }
3571
3572        if (month == 9 && date == 31) {
3573            specialDay = "halloween";
3574        }
3575
3576        if ((month == 10 && date > 10) || (month == 11 && date < 24)) { //most of november and december
3577            specialPeriod = "endOfYear";
3578        }
3579
3580        //if ((month == 10 && date > 24) || month == 11) { //late november, all of december
3581        //    specialPeriod = "preChristmas";
3582        //}
3583
3584        if ((month == 10 && date > 23) || month == 11) { //overwrites preChristmas
3585            specialPeriod = "christmas";
3586        }
3587
3588        if (month == 11 && date == 20) {
3589            specialDay = "dec20th";
3590        }
3591
3592        if (month == 11 && date == 21) {
3593            specialDay = "dec21st";
3594        }
3595
3596        if (month == 11 && date == 22) {
3597            specialDay = "dec22nd";
3598        }
3599
3600        if (month == 11 && date == 23) {
3601            specialDay = "dec23rd";
3602        }
3603
3604        if (month == 11 && date == 24) {
3605            specialDay = "christmasEve";
3606        }
3607
3608        if (month == 11 && date == 25) {
3609            specialDay = "christmasDay";
3610        }
3611
3612        if (month == 11 && date == 26) {
3613            specialDay = "boxingDay";
3614        }
3615
3616        if (month == 11 && date == 31) {
3617            specialDay = "newYearsEve";
3618        }
3619
3620        if (month == 0 && date == 1) {
3621            specialDay = "newYearsDay";
3622        }
3623
3624        if ((month == 3 && date == 20 && year == 2025) || (month == 3 && date == 12 && year == 2026) || (month == 3 && date == 4 && year == 2027) || (month == 3 && date == 23 && year == 2028) || (month == 3 && date == 9 && year == 2029) || (month == 3 && date == 21 && year == 2030)) {
3625            specialDay = "easterSunday";
3626        }
3627
3628        if (debug) {
3629            //specialPeriod = "christmas";
3630            //specialDay = "aprilFoolsDay";
3631        }
3632
3633        if (isSchool) {
3634
3635            //qqq
3636
3637            if (shortLang == "en") {
3638                topPromoButtonsContainer.style.display = "block";
3639                friv4SchoolFactsContainer.style.display = "block";
3640            }
3641
3642            combatRemove.style.display = "none";
3643            shootingRemove.style.display = "none";
3644            //manageRevoke.style.display = "none";
3645            document.body.style.background = "linear-gradient(teal, indigo)";
3646
3647            // qqq
3648            var f4sScript = document.createElement('script');
3649
3650            var selectedCategory = 0;
3651
3652            f4sScript.onload = function () {
3653                //console.log(friv4schoolfacts.math[1]);
3654
3655                //selectedCategory = Math.floor(Math.random() * friv4schoolfacts.length);
3656
3657                //console.log("selectedCategory in function: " + selectedCategory);
3658
3659                showFriv4SchoolFact();
3660            };
3661
3662            f4sScript.src = "z/assets/scripts/friv4schoolfacts.js";
3663            document.head.appendChild(f4sScript);
3664
3665        } else {
3666            mathRemove.style.display = "none";
3667            quizRemove.style.display = "none";
3668            wordRemove.style.display = "none";
3669        }
3670
3671        //check for correct domain
3672
3673        console.log("host: " + host);
3674
3675        if ((!isSchool && host != "friv.com" && host != "www.friv.com" && host != "dev1.friv.co.uk" && host != "dev2.friv.co.uk" && location.protocol != "file:") || window.location !== window.parent.location) { //not on correct domain, or is in a frame of some kind
3676            console.log("must redirect...");
3677
3678            setTimeout(function () {
3679                document.write("<center><br><h2><mark>&nbsp;Sorry. There seems to be an error. Please check the domain is: <a href=https://www.friv.com target=_top>friv.com</a>&nbsp;</mark></h2><br><img src=https://whos.amung.us/widget/aaaaaaaaaaaa.png></center>");
3680            }, 3000);
3681
3682            setTimeout(function () {
3683                window.location.replace("https://www.friv.com/");
3684            }, 6000);
3685
3686            window.open("https://www.friv.com/", '_blank');
3687
3688        }
3689
3690
3691        //ANALYTICS
3692        ///////////
3693        window.dataLayer = window.dataLayer || [];
3694
3695        function gtag() {
3696            dataLayer.push(arguments);
3697        }
3698        gtag('js', new Date());
3699
3700        if (isSchool) {
3701            gtag('config', 'G-WKK8W70CG6'); //school (100% sample, page and all events) //was: UA-124684579-7 G-Q1SE2SYDTW
3702        } else {
3703            gtag('config', 'G-WKK8W70CG6', { //main (1% sample) See later for UA-124684579-8 was: UA-124684579-5 G-Q1SE2SYDTW
3704                //sample_rate: 1, //'sample_rate': 1, //deprecated in GA4
3705                send_page_view: false
3706            });
3707        }
3708
3709
3710
3711
3712        //LBA COLOURS
3713        /////////////
3714        const dailyColours = [
3715            ["#009", "#00b"],
3716            ["#633", "#755"],
3717            ["#050", "#070"],
3718            ["#06a", "#09d"],
3719            ["#60c", "#82e"],
3720            ["#25c", "#47e"],
3721            ["#906", "#c18"]
3722        ];
3723
3724        if (!isSchool) {
3725
3726            const defaultGradient = "linear-gradient(to right, " + dailyColours[day][0] + ", " + dailyColours[day][1] + ", " + dailyColours[day][0] + ")";
3727            lbaTop.style.backgroundImage = defaultGradient;
3728            lba.style.backgroundImage = defaultGradient;
3729            lbaJokes.style.backgroundImage = defaultGradient;
3730            topPromoButton1.style.backgroundColor = dailyColours[day][0];
3731            //console.log("%c" + day, "color: yellow;"); //day
3732
3733            if (specialPeriod == "valentines") {
3734                const valentinesGradient = "linear-gradient(to right, firebrick 0%, deeppink 10%, deeppink 90%, firebrick 100%)";
3735                lbaTop.style.backgroundImage = valentinesGradient;
3736                lba.style.backgroundImage = valentinesGradient;
3737                lbaJokes.style.backgroundImage = valentinesGradient;
3738                topPromoButton1.style.backgroundImage = valentinesGradient;
3739            }
3740
3741            if (specialPeriod == "christmas") {
3742                const christmasGradient = "linear-gradient(to right, green 0%, firebrick 10%, firebrick 90%, green 100%)";
3743                lbaTop.style.backgroundImage = christmasGradient;
3744                lba.style.backgroundImage = christmasGradient;
3745                lbaJokes.style.backgroundImage = christmasGradient;
3746                topPromoButton1.style.backgroundImage = christmasGradient;
3747            }
3748
3749            if (specialPeriod == "halloween") {
3750                const halloweenGradient = "linear-gradient(to right, orangered 0%, darkorange 10%, darkorange 90%, orangered 100%)";
3751                lbaTop.style.backgroundImage = halloweenGradient;
3752                lba.style.backgroundImage = halloweenGradient;
3753                lbaJokes.style.backgroundImage = halloweenGradient;
3754                topPromoButton1.style.backgroundImage = halloweenGradient;
3755            }
3756
3757        }
3758
3759
3760
3761        //CHECK DIVS
3762        ////////////
3763
3764
3765
3766        function checkForElementsByClass(className) {
3767            // Get all elements with the specified class name
3768            const elements = document.getElementsByClassName(className);
3769
3770            // Check if any elements were found
3771            return elements.length > 0;
3772        }
3773
3774        var resourcesAccessible = true;
3775
3776        console.log("ADBLK resourcesAccessible-1: " + resourcesAccessible);
3777
3778        function checkForVisibleElementsByClass(className) {
3779            const elements = document.getElementsByClassName(className);
3780
3781            for (const element of elements) {
3782                // Check if the element is visible
3783                if (element.offsetParent !== null) {
3784                    return true; // At least one element is visible
3785                }
3786            }
3787
3788            return false; // No visible elements found
3789        }
3790
3791        function chkvs() {
3792
3793            console.log("ADBLK start of chkvs")
3794
3795            if (!isSchool && !testVer && os == "Desktop") {
3796
3797                // Check if any visible elements with the class "prmelmt" exist
3798                const elementsExist = checkForElementsByClass("prmelmt");
3799                console.log("ADBLK elementsExist: " + elementsExist);
3800
3801                const elementsVisible = checkForVisibleElementsByClass("prmelmt");
3802                console.log("elementsVisible: " + elementsVisible);
3803
3804                if (elementsExist && elementsVisible && scriptsLoadable) {
3805                    console.log("ADBLK elementsExist-2: " + elementsExist);
3806                    console.log("ADBLK elementsVisible-2: " + elementsVisible);
3807                    console.log("ADBLK scriptsLoadable-2: " + scriptsLoadable);
3808                    console.log("ADBLK resourcesAccessible-2: " + resourcesAccessible);
3809                    console.log("ADBLK conclusion: UNBLOCKED - At least one element with the class 'prmelmt' exists and at least one is visible AND ad block is not active (determined via loading script).");
3810                } else {
3811                    resourcesAccessible = false;
3812                    console.log("ADBLK elementsExist-3: " + elementsExist);
3813                    console.log("ADBLK elementsVisible-3: " + elementsVisible);
3814                    console.log("ADBLK scriptsLoadable-3: " + scriptsLoadable);
3815                    console.log("ADBLK resourcesAccessible-3: " + resourcesAccessible);
3816                    console.log("ADBLK conclusion: BLOCKED - No elements with the class 'prmelmt' exist AND / OR none are visible AND / OR script loading was blocked.");
3817                }
3818
3819            }
3820        }
3821
3822        //when page has loaded, check prm elements
3823        document.addEventListener('DOMContentLoaded', function () {
3824            chkvs();
3825        });
3826
3827        //check again after a pause
3828        setTimeout(function () {
3829
3830            console.log("ADBLK doing chkvsblty at 1 secs...");
3831
3832            chkvs();
3833
3834            console.log("ADBLK resourcesAccessible-5: " + resourcesAccessible);
3835
3836            if (!resourcesAccessible) {
3837
3838                console.log("ADBLK Redisplaying games...");
3839                displayGames("*", "*");
3840            }
3841
3842        }, 800);
3843
3844        //uBlock Origin Lite - even as a comment, the following line containing "checkVisibility" will cause function not to execute
3845        //console.log("ADBLK doing checkVisibility at 1 secs...");
3846        //Friv has only ONE advert on the entire site. We use the money generated to support developers in making games. Without this single ad, Friv would die. :(
3847        //document.title = "Friv 01";
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857        //TOP DAILY JOKES
3858        /////////////////
3859
3860        const supportedLanguages = ["en", "es", "pt", "pl", "fr", "id", "el", "hr", "sk", "it", "ro", "da", "de", "nl"]; //arabic, hebrew, turkish, thai, hungarian, swedish
3861        const randomJokesLanguages = ["e-n", "e-s", "p-t", "p-l", "f-r", "i-d", "e-l", "h-r", "s-k", "it", "ro", "da", "de", "nl"];
3862        //valentines and easter un-upvoted (low volumes)... "it", "ro", "da", "de", "nl"
3863        var chosenJoke = "";
3864        var jokeAffix = "t";
3865
3866        console.log("%cshortLang: " + shortLang, "color: indigo;");
3867
3868        if (supportedLanguages.includes(shortLang) && !isSchool) {
3869            loadTopDailyJokesScript()
3870                .then(topDailyJokes => {
3871
3872                    lbaJokes.style.display = "block";
3873
3874                    var jokeIntro = todaysJoke;
3875                    var workingListOfJokes = topDailyJokes;
3876                    var doRandomJokes = false;
3877                    //temp always do random jokes for specified countries - normal daily jokes etc.
3878                    if (randomJokesLanguages.includes(shortLang)) {
3879                        doRandomJokes = true;
3880                        jokeIntro = randomJoke;
3881                    }
3882
3883                    //jokes must be presemt, and array must not be empty
3884                    if (specialPeriod == "valentines" && window.valentinesJokes && window.valentinesJokes.length > 0) {
3885                        jokeAffix = "v";
3886                        jokeIntro = todaysValentinesJoke;
3887                        workingListOfJokes = valentinesJokes;
3888                        if (randomJokesLanguages.includes(shortLang)) {
3889                            doRandomJokes = true;
3890                            jokeIntro = randomValentinesJoke;
3891                        }
3892                    }
3893
3894                    if (specialPeriod == "easter" && window.easterJokes && window.easterJokes.length > 0) {
3895                        jokeAffix = "e";
3896                        jokeIntro = todaysEasterJoke;
3897                        workingListOfJokes = easterJokes;
3898                        if (randomJokesLanguages.includes(shortLang)) {
3899                            doRandomJokes = true;
3900                            jokeIntro = randomEasterJoke;
3901                        }
3902                    }
3903
3904                    if (specialPeriod == "halloween" && window.halloweenJokes && window.halloweenJokes.length > 0) {
3905                        jokeAffix = "h";
3906                        jokeIntro = todaysHalloweenJoke;
3907                        workingListOfJokes = halloweenJokes;
3908                        if (randomJokesLanguages.includes(shortLang)) {
3909                            doRandomJokes = true;
3910                            jokeIntro = randomHalloweenJoke;
3911                        }
3912                    }
3913
3914                    if (specialPeriod == "christmas" && window.christmasJokes && window.christmasJokes.length > 0) {
3915                        jokeAffix = "z";
3916                        jokeIntro = todaysChristmasJoke;
3917                        workingListOfJokes = christmasJokes;
3918                        if (randomJokesLanguages.includes(shortLang)) {
3919                            doRandomJokes = true;
3920                            jokeIntro = randomChristmasJoke;
3921                        }
3922                    }
3923
3924                    const jokeIndex = dayOfYear % workingListOfJokes.length; //dayOfYear
3925                    //const jokeIndex = 38; //one-part-knock-knock-joke
3926                    var [selectedTopJokeA, selectedTopJokeB] = workingListOfJokes[jokeIndex];
3927
3928                    if (doRandomJokes) {
3929                        var [selectedTopJokeA, selectedTopJokeB] = workingListOfJokes[Math.floor(Math.random() * workingListOfJokes.length)];
3930                    }
3931
3932                    console.log("selectedTopJokeA: " + selectedTopJokeA);
3933                    console.log("selectedTopJokeB: " + selectedTopJokeB);
3934
3935                    if (shortLang == "en" && british) {
3936                        selectedTopJokeA = selectedTopJokeA.replace(/Santa/g, "Father Christmas");
3937                    }
3938
3939                    if (shortLang == "en" && british && selectedTopJokeB != undefined) {
3940                        selectedTopJokeB = selectedTopJokeB.replace(/Santa/g, "Father Christmas");
3941                    }
3942
3943                    chosenJoke = selectedTopJokeA;
3944
3945                    console.log("chosenJoke: " + chosenJoke);
3946
3947                    var twoPartJoke = true;
3948
3949                    if (selectedTopJokeB == undefined) {
3950                        twoPartJoke = false;
3951                    }
3952
3953                    var todaysJokeOpener = jokeIntro + " - " + clickForAnswer;
3954
3955                    if (touchDevice) {
3956                        todaysJokeOpener = jokeIntro + " - " + tapForAnswer;
3957                    }
3958
3959                    //gtag('event', "Joke|" + shortLang + jokeIndex + "|Shown");
3960
3961                    function showTwoPartJoke() {
3962                        lbaJokes.innerHTML = `<span style="color:lemonchiffon">${jokeIntro}</span><br>${selectedTopJokeA} `;
3963
3964                        console.log("ADBLK resourcesAccessible-4: " + resourcesAccessible);
3965
3966                        if (resourcesAccessible) {
3967
3968                            var i = 0;
3969
3970                            function typeWriter() {
3971                                if (i < selectedTopJokeB.length) {
3972                                    lbaJokes.innerHTML += selectedTopJokeB.charAt(i);
3973                                    i++;
3974                                    setTimeout(typeWriter, 30);
3975                                }
3976                            }
3977
3978                            typeWriter();
3979
3980                            gtag('event', "Joke|" + shortLang + jokeIndex + "|Clicked-Working");
3981
3982                        } else {
3983
3984                            //var scriptWarningX = "Sorry. There may be an issue with your connection or your browser. Something blocked access to parts of this page. Please check that you are using an up to date browser on a good connection, and be sure to turn off any extensions that may block interactive elements. Then reload. None of the games on Friv contain ads. :)";
3985
3986                            setTimeout(function () {
3987                                lbaJokes.innerHTML += `<br><span style="color:yellow">${scriptWarning}</span>`;
3988                            }, 3000);
3989
3990                            gtag('event', "Joke|" + shortLang + jokeIndex + "|Clicked-Blocked");
3991
3992                        }
3993
3994                        lbaJokes.style.cursor = "default";
3995                        lbaJokes.removeEventListener("click", showTwoPartJoke);
3996
3997                        //only vote during random joke showing
3998                        if (doRandomJokes) {
3999                            showJokeVoting();
4000                        }
4001                    }
4002
4003                    if (twoPartJoke) {
4004                        lbaJokes.innerHTML = `<span style="color:lemonchiffon">${todaysJokeOpener}</span><br>${selectedTopJokeA}`; //with colour... lbaJokes.innerHTML = `<span style="color: palegoldenrod">${jokeIntro}</span><br>${selectedTopJokeA}</span> `; 
4005                        lbaJokes.addEventListener("click", showTwoPartJoke);
4006                    } else { //for one liners...
4007                        lbaJokes.innerHTML = `<span style="color:lemonchiffon">${jokeIntro}</span><br>${selectedTopJokeA}`;
4008                        lbaJokes.style.cursor = "default";
4009                    }
4010
4011                })
4012                .catch(error => {
4013                    console.error("Error loading top daily jokes:", error);
4014                });
4015        }
4016
4017        function loadTopDailyJokesScript() {
4018            return new Promise((resolve, reject) => {
4019                const script = document.createElement('script');
4020
4021                script.src = "z/assets/scripts/jokes/" + "z" + shortLang + "-jokes.js";
4022
4023                script.onload = () => {
4024                    if (typeof window.topDailyJokes !== 'undefined') {
4025                        resolve(window.topDailyJokes);
4026                    } else {
4027                        reject(new Error("topDailyJokes not defined in the script"));
4028                    }
4029                };
4030
4031                script.onerror = () => reject(new Error("Failed to load jokes script"));
4032
4033                document.head.appendChild(script);
4034            });
4035        }
4036
4037        function showJokeVoting() {
4038
4039            const lbaJokes = document.getElementById('lbaJokes');
4040
4041            setTimeout(function () {
4042                // 1. Insert the new HTML content using insertAdjacentHTML
4043                // This is safer than innerHTML += because it only parses the new string.
4044                lbaJokes.innerHTML += "<div id='jokeVoting'><span id='jokeThumbsUp'>👍</span> <span id='jokeThumbsDown'>👎</span></div>";
4045
4046                console.log("adding listeners...")
4047
4048                // 2. RETRIEVE the newly created elements using their IDs
4049                // Crucial Change: Use the parent element (lbaJokes) to 
4049search only
4050                // within the new content for the elements if possible, or just rely on the document.
4051                const jokeThumbsUp = document.getElementById("jokeThumbsUp");
4052                const jokeThumbsDown = document.getElementById("jokeThumbsDown");
4053
4054                // 3. Attach the listeners to the retrieved elements
4055                if (jokeThumbsUp) {
4056                    console.log("found jokeThumbsUp");
4057                    jokeThumbsUp.addEventListener("click", function () {
4058                        console.log("voted up");
4059                        jokeVote("J", "U");
4060                        console.log("voted up");
4061                    });
4062                }
4063
4064                if (jokeThumbsDown) {
4065                    jokeThumbsDown.addEventListener("click", function () {
4066                        jokeVote("J", "D");
4067                    });
4068                }
4069
4070            }, 5000);
4071        }
4072
4073        function jokeVote(contentType, voteType) {
4074
4075            console.log("jokeVote");
4076
4077            var jokeSendString = chosenJoke.replace(/ /g, "-");
4078            var jokeStartIndex = jokeSendString.length - 34; //limit of analytics
4079
4080            if (jokeStartIndex < 0) {
4081                jokeStartIndex = 0;
4082            }
4083
4084            jokeSendString = jokeSendString.substring(jokeStartIndex, jokeSendString.length);
4085
4086            console.log(jokeSendString);
4087
4088            const voteString = shortLang + contentType + voteType + jokeAffix + "|" + jokeSendString;
4089
4090            console.log(voteString);
4091
4092            jokeVoting.innerHTML = window.jokeVotingThankyou;
4093
4094            setTimeout(function () {
4095
4096                jokeVoting.style.display = "none";
4097
4098            }, 2000);
4099
4100            gtag('event', voteString);
4101
4102        }
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112        ////////// GFX PERFORMANCE v0.8 START
4113        /////////////////////////////////////
4114
4115        function getGfxPerformance() {
4116
4117            const now = performance.now();
4118
4119            for (let i = 0; i < 5000; i++) {
4120                gfxSpeedSquare.style.width = Math.floor(Math.random() * 50) + 50 + "vw";
4121                gfxSpeedSquare.style.height = Math.floor(Math.random() * 50) + 50 + "vh";
4122                gfxSpeedSquare.style.transform = "skewX(" + Math.floor(Math.random() * 40) + "deg)";
4123                gfxSpeedSquare.style.transform = "rotate(" + Math.floor(Math.random() * 40) + "deg)";
4124            }
4125
4126            gfxSpeedSquare.style.transform = "skewX(0deg)";
4127            gfxSpeedSquare.style.transform = "rotate(0deg)";
4128
4129            let result = Math.floor((performance.now()) - now);
4130
4131            //gfxSpeedSquare.innerHTML = result + "ms"; //can briefly show result if desired
4132
4133            setTimeout(function () {
4134                gfxSpeedSquare.style.display = "none";
4135            }, 999);
4136
4137            console.log("gfx assessment complete!");
4138
4139            return result;
4140
4141        }
4142
4143        ////////// GFX PERFORMANCE END
4144        //////////////////////////////
4145
4146
4147
4148
4149        //BREAKPOINT
4150        ////////////
4151        if (breakPoint) {
4152            gtag('event', 'Breakpoint 01', {
4153                'event_category': 'Debug',
4154                'event_label': 'Breakpoints'
4155            });
4156        }
4157        ////////////
4158        ////////////
4159
4160
4161
4162
4163
4164        //ADS CONVERSION SETUP
4165        //////////////////////
4166        /*
4167        
vendor: 181 bytes, lines 4167-4173
4167window.dataLayer = window.dataLayer || [];
4168
4169        function gtag() {
4170            dataLayer.push(arguments);
4171        }
4172        gtag('js', new Date());
4173        gtag('config', '
4173AW-10805618303
vendor: 13 bytes, lines 4173-4174
4173');
4174        
4174*/
4175
4176
4177
4178
4179
4180        //MAIN PART
4181        ///////////
4182
4183
4184
4185
4186
4187
4188
4189
4190        //FRIV4SCHOOL
4191        /////////////
4192
4193        friv4SchoolFactColors = ["fireBrick", "lightseagreen", "dodgerBlue", "slateBlue", "blueViolet", "violet", "deepPink", "chocolate", "darkOrange", "limeGreen", "green", "red", "cyan", "magenta", "blue", "purple",];
4194        //iv4SchoolFactColors = ["math",      "animals",       "computing",  "nature",    "food",       "human body", "language", "history", "science",  "geography", "environment", "xmas"];
4195
4196        var friv4SchoolFactsVoteString = "";
4197
4198        /*
4199        function daysIntoYear(date){
4200            return (Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) - Date.UTC(date.getFullYear(), 0, 0)) / 24 / 60 / 60 / 1000;
4201        }
4202
4203        var daysSinceStartOfYear = daysIntoYear(new Date())
4204        */
4205
4206
4207        var firstShowingFriv4SchoolFact = true;
4208
4209        var selectedCategory = 0;
4210
4211        console.log("XXX firstShowingFriv4SchoolFact: " + firstShowingFriv4SchoolFact);
4212
4213        function showFriv4SchoolFact() {
4214
4215            friv4SchoolFactBottomBar.style.display = "none";
4216
4217            console.log("!!!friv4schoolfacts.length: " + friv4schoolfacts.length);
4218
4219            //var selectedCategory = 0; // for now, always start at maths ...or for random assignment... (Math.floor(Math.random() * (friv4schoolfacts.length - 1))); //last one is Christmas
4220
4221
4222
4223            console.log("XXX firstShowingFriv4SchoolFact: " + firstShowingFriv4SchoolFact);
4224
4225            if (firstShowingFriv4SchoolFact) {
4226                selectedCategory = 0;
4227
4228                if (specialPeriod == "christmas") {
4229                    selectedCategory = friv4schoolfacts.length - 1;
4230                }
4231
4232                console.log("XXX TRUE");
4233            }
4234
4235            console.log("XXX firstShowingFriv4SchoolFact: " + firstShowingFriv4SchoolFact);
4236
4237            //for now do not vote on maths facts
4238            //for now, do not show voting at all
4239            if (firstShowingFriv4SchoolFact) { //selectedCategory != 0
4240                friv4SchoolFactBottomBar.style.display = "none";
4241            } else {
4242                friv4SchoolFactBottomBar.style.display = "none";
4243            }
4244
4245            //selectedCategory = 0; ///////////////////////////// RIGGED TO MATH FOR NOW!!!!!
4246
4247            console.log("!!!selectedCategory: " + selectedCategory);
4248
4249            console.log("!!!friv4schoolfacts[selectedCategory]: " + friv4schoolfacts[selectedCategory]);
4250
4251            console.log("!!!friv4schoolfacts[selectedCategory].length: " + friv4schoolfacts[selectedCategory].length);
4252
4253            // var selectedFact = Math.floor(((daysSinceStartOfYear * 2.739726027397260273972602739726)/1000) * friv4schoolfacts[selectedCategory].length); //evenly pass through 
4254
4255            //var selectedFact = (new Date().getDate());
4256
4257
4258            var selectedFact = Math.floor(Math.random() * (friv4schoolfacts[selectedCategory].length - 1)) + 1; //never use the fact at position 0 as this is reserved for April Fools Day
4259
4260            //var selectedFact = 34;
4261
4262            console.log("selectedFact: " + selectedFact);
4263
4264            //var stepUp = Math.floor(userRandom / 10);
4265
4266            var stepUp = 0; ///////////////////////////// RIGGED FOR NOW!!!!!
4267
4268            if (selectedFact + stepUp >= friv4schoolfacts[selectedCategory].length) {
4269                selectedFact = (selectedFact + stepUp) - friv4schoolfacts[selectedCategory].length; //bump choice round to towards start of array, avoiding overshooting the end
4270
4271                console.log("stepUp go-round activated!!!");
4272
4273                console.log("friv4schoolfacts[selectedCategory].length : " + friv4schoolfacts[selectedCategory].length);
4274
4275            } else {
4276                console.log("stepUp go-round NOT needed!!!");
4277
4278                selectedFact += stepUp; //add stepup as normal
4279            }
4280
4281            console.log("stepUp: " + stepUp);
4282
4283            //const dimensions = [ arr.length, arr[0].length ];
4284
4285            console.log("selectedFact: " + selectedFact);
4286
4287            if (selectedFact == 0) {
4288                selectedFact = 1;
4289            }
4290
4291
4292            if (specialDay == "aprilFoolsDay") {
4293                selectedFact = 0;
4294            }
4295
4296
4297            friv4SchoolFactsContainer.style.backgroundColor = friv4SchoolFactColors[selectedCategory];
4298
4299
4300
4301
4302            const selectedFactSplit = friv4schoolfacts[selectedCategory][selectedFact].split("|");
4303            friv4SchoolFactsVoteString = selectedFactSplit[1].replace(/ /g, "-").replace(/,/g, "").slice(0, 34);
4304
4305
4306            //friv4SchoolFactsVoteString = friv4schoolfacts[selectedCategory][selectedFact].replace("|", " ").replace("^1", "").replace("^2", "").replace("^3", "").replace("^4", "").replace("^5", "").replace("^6", "").replace("^7", "").replace("^8", "").replace("^9", "").replace("^A", "").replace("^B", "").replace("^C", "").slice(0, 50);
4307            //friv4SchoolFactsVoteString.length = 15;
4308
4309            console.log("FFF friv4SchoolFactsVoteString: " + friv4SchoolFactsVoteString);
4310
4311
4312
4313
4314            var factsOutput = friv4schoolfacts[selectedCategory][selectedFact].replace("|", "<br>").replace("^MA", "Interesting Math Fact").replace("^HS", "Interesting History Fact").replace("^SC", "Interesting Science Fact").replace("^GE", "Interesting Geography Fact").replace("^EN", "Interesting Environment Fact").replace("^MU", "Interesting Music Fact").replace("^CM", "Interesting Computing Fact").replace("^LN", "Interesting Language Fact").replace("^FD", "Interesting Food Fact").replace("^AR", "Interesting Art Fact").replace("^NT", "Interesting Nature Fact").replace("^AN", "Interesting Animals Fact").replace("^HB", "Interesting Human Body Fact").replace("^CH", "Interesting Christmas Fact");
4315
4316            if (british && selectedCategory == 0) {
4317                factsOutput = factsOutput.replace(/Math /g, "Maths ").replace(/math /g, "maths ");
4318            }
4319
4320            if (firstShowingFriv4SchoolFact) {
4321                factsOutput += "&nbsp;Click here for some more facts..." //"<br>Click for more facts."
4322            }
4323
4324            friv4SchoolFactsContents.innerHTML = factsOutput;
4325
4326
4327            friv4SchoolFactsContainer.style.opacity = 1;
4328
4329            //ttt
4330            selectedCategory++;
4331            if (selectedCategory >= friv4schoolfacts.length) {
4332                selectedCategory = 0; //back to maths
4333            }
4334
4335            firstShowingFriv4SchoolFact = false;
4336            console.log("XXX FALSE");
4337
4338        }
4339
4340
4341        function friv4SchoolFactsVote(voteType) {
4342
4343            console.log("F4SV" + voteType + "|" + friv4SchoolFactsVoteString);
4344
4345            gtag('event', "F4SV" + voteType + "|" + friv4SchoolFactsVoteString);
4346
4347            friv4SchoolFactBottomBar.style.display = "none";
4348            friv4SchoolFactsThankyou.style.display = "block";
4349
4350            setTimeout(function () {
4351
4352                //friv4SchoolFactBottomBar.innerHTML = "";
4353                friv4SchoolFactsThankyou.style.display = "none";
4354
4355            }, 3000);
4356
4357        }
4358
4359        function showTeachersParentsMessage() { //showExtraSchoolMessage
4360            //friv4SchoolFactsContainer.style.cursor = "default";
4361            friv4SchoolFactsContainer.style.backgroundColor = "#600090";
4362            friv4SchoolFactsContainer.innerHTML = "- Information For Teachers And Parents -<br><br>Welcome! For over 15 years Friv4School has provided a free, no ads, safe place for learning and fun. Here you will find a range of games, puzzles, and interactive curiosities suitable for both classroom and home settings. There is a lot of wholesome material here, with each game or activity checked to ensure that its content is appropriate for all children of compulsory sc
4362hooling age. We've specifically designed the site to be free from distractions and safety worries. You won't find problematic features common elsewhere, such as chat, messaging and commenting, privacy issues, violent or otherwise inappropriate content, bad language, external links, or social media and ad-network tracking. The site is designed for anonymous use, requiring no login details. Nothing on the site utilizes or activates users' microphones or webcams.<br><br>As well as math, word, and quiz games, there is particular emphasis placed on puzzle games requiring critical thinking, learning, and problem-solving skills to progress through them. For your convenience, you will find these elements bordered in <span class=paleYellow>pale yellow</span>.<br><br>Friv4School is 100% free for all users and all educational institutions without registration.<br>This site is made and maintained as a kindness to children worldwide.<br>A huge thank you to all the developers who have supplied the games.<br><br><span class=halfOpacity>We're always trying to make things better. Whether teacher or parent, should you have any feedback, please share it via the form at the bottom of the page. Thank you!</span><br><br>";
4363
4364            friv4SchoolFactsContainer.scrollIntoView({
4365                block: 'center',
4366                behavior: 'smooth'
4367            });
4368            showFeedback();
4369        }
4370
4371
4372
4373
4374
4375
4376
4377        ////////// COOKIES v0.8 START
4378        /////////////////////////////
4379
4380        var pageViews = -1;
4381        var gamePlays = -1;
4382        var dressupCounter = -1;
4383        var userRandom = -1;
4384        var gfxPerformance = -1; //ms
4385        var frivExtraTimer = -1;
4386        var niceColour1 = "indigo";
4387        var niceColour2 = "navy";
4388
4389        function simpleCookies() {
4390
4391            //pageview
4392            var n = localStorage.getItem('visitsCounter');
4393            if (n === null) {
4394                n = 0;
4395            }
4396            n++;
4397            localStorage.setItem("visitsCounter", n);
4398            pageViews = n;
4399
4400            //random assignment
4401            var m = localStorage.getItem('randomAssignment');
4402            if (m === null) {
4403                m = Math.floor(Math.random() * 100);
4404            }
4405            localStorage.setItem("randomAssignment", m);
4406            userRandom = m;
4407
4408            //gfx performance
4409            var l = localStorage.getItem('gfxPerformance');
4410            if (l === null) {
4411                l = getGfxPerformance();
4412                console.log("cookie for gfx performance complete!");
4413            }
4414            localStorage.setItem("gfxPerformance", l);
4415            gfxPerformance = l;
4416
4417            //reset friv extra timer
4418            var n = localStorage.getItem('frivExtraTimer');
4419            if (n === null || n != d.getDate()) {
4420                n = 0;
4421                console.log("cookie for frivExtraTimer reset!");
4422            }
4423            localStorage.setItem("frivExtraTimer", n);
4424            frivExtraTimer = n;
4425
4426            //gameplays
4427            var x = localStorage.getItem('gamePlays');
4428            if (x === null) {
4429                x = 0;
4430            }
4431            localStorage.setItem("gamePlays", x);
4432            gamePlays = x;
4433
4434            //dressup counter
4435            var z = localStorage.getItem('dressupCounter');
4436            if (z === null) {
4437                z = 0;
4438            }
4439            localStorage.setItem("dressupCounter", z);
4440            dressupCounter = z;
4441
4442            //nicecolour1
4443            var o = localStorage.getItem('niceColour1');
4444            if (o === null) {
4445                o = "indigo";
4446                if (isSchool) {
4447                    o = "teal";
4448                }
4449                if (specialPeriod == "christmas") {
4450                    o = "maroon";
4451                }
4452            }
4453            localStorage.setItem("niceColour1", o);
4454            niceColour1 = o;
4455
4456            //nicecolour2
4457            var p = localStorage.getItem('niceColour2');
4458            if (p === null) {
4459                p = "navy";
4460                if (isSchool) {
4461                    p = "indigo";
4462                }
4463                if (specialPeriod == "christmas") {
4464                    p = "#400";
4465                }
4466            }
4467            localStorage.setItem("niceColour2", p);
4468            niceColour2 = p;
4469
4470        }
4471
4472        simpleCookies();
4473
4474        ////////// COOKIES END
4475        //////////////////////
4476
4477
4478
4479
4480        ////////// CATEGORISE GFX PERFORMANCE v0.8 START
4481        ////////////////////////////////////////////////
4482
4483        var gfxPerformanceCategory = 4; //top performance
4484
4485        if (gfxPerformance > 20) {
4486            gfxPerformanceCategory = 3;
4487        }
4488        if (gfxPerformance > 75) {
4489            gfxPerformanceCategory = 2;
4490        }
4491        if (gfxPerformance > 150) {
4492            gfxPerformanceCategory = 1; //poor performance
4493        }
4494
4495        ////////// CATEGORISE GFX PERFORMANCE END
4496        /////////////////////////////////////////
4497
4498
4499        if (Math.random() > 0.99) {
4500            gtag('event', ('Graphics Performance Category : ' + gfxPerformanceCategory), {
4501                'event_category': 'Navigation',
4502                'event_label': 'Debugging'
4503            });
4504        }
4505
4506    </script>
4506
4507
4508    <!-- deliberate code splitting for fid -->
4509
4510    
4510<script>
4511        //BREAKPOINT
4512        ////////////
4513        if (breakPoint) {
4514            gtag('event', 'Breakpoint 02', {
4515                'event_category': 'Debug',
4516                'event_label': 'Breakpoints'
4517            });
4518        }
4519        ////////////
4520        ////////////
4521
4522
4523
4524        //AD BLOCKING & SCHOOL
4525        //////////////////////
4526        //adjust to make this look nice where ads are blocked / not shown...
4527        if (!scriptsLoadable || isSchool) {
4528            if (document.getElementById("lbaTop")) { //therefore 'promo' code is present on page
4529                lbaTop.style.display = "none";
4530                lba.style.display = "none";
4531                //loadingGamesExpander.style.display = "none";
4532            }
4533        }
4534
4535        if (isSchool) {
4536            loadingGamesExpander.style.display = "none";
4537        }
4538
4539
4540
4541
4542        //BREAKPOINT
4543        ////////////
4544        if (breakPoint) {
4545            gtag('event', 'Breakpoint 03', {
4546                'event_category': 'Debug',
4547                'event_label': 'Breakpoints'
4548            });
4549        }
4550        ////////////
4551        ////////////
4552
4553        var popIndex = 8;
4554
4555        if (deviceCategory == "Android") {
4556            popIndex = 9;
4557        }
4558
4559        if (deviceCategory == "iPadOld" || os == "iPadNew") {
4560            popIndex = 10;
4561        }
4562
4563        if (deviceCategory == "iPhone") {
4564            popIndex = 11;
4565        }
4566
4567        if (debug) { //spoof os
4568            //deviceCategory = "Desktop";
4569            //popIndex = 8;
4570
4571            //deviceCategory = "Android";
4572            //popIndex = 9;
4573
4574            //deviceCategory = "iPadOld";
4575            //popIndex = 10;
4576
4577            deviceCategory = "iPadNew";
4578            popIndex = 10;
4579
4580            //deviceCategory = "iPhone";
4581            //popIndex = 11;
4582
4583        }
4584
4585
4586
4587
4588        //SHOW DEDICATED DESKTOP USERS NEW GAMES
4589        ////////////////////////////////////////
4590        //console.log("window.location.href: " + window.location.href);
4591        //console.log("window.location.href (length): " + window.location.href.length);
4592
4593        //orig... if (window.location.href.length == 21 && gamePlays > 1 && scriptsLoadable && !touchDevice) { //QAD: https://www.friv.com/ ...being 21 in length
4594
4595        if (window.location.href.length == 21 && gamePlays >= 5 && !touchDevice) { //QAD: https://www.friv.com/ ...being 21 in length, has played x games (coincides with achievement #1) and is on a desktop machine
4596            //window.location.replace("https://www.friv.com/new.html"); //show desktop users new games SDF-trial
4597        }
4598
4599        //INSTAGRAM FOR MOBILES ONLY
4600        ////////////////////////////
4601        //if ((touchDevice && !isSchool && (pageViews == 5 || pageViews == 7 || (pageViews % 10) == 0))) {
4602        //    lbaInstagram.style.display = "inline-block";
4603        //    lbaInstagram.src = "z/assets/img/instagramAttract1080x200Min.png";
4604        //    lbaInstagram.addEventListener("click", openInstagram);
4605        //}
4606
4607        //function openInstagram() {
4608        //    window.open("https://www.instagram.com/friv/"); //3276 followers 16th Dec 2021 - 3313 24th Jan 2022
4609        //}
4610
4611
4612
4613
4614        //DEVICE  ASSESSMENT
4615        ////////////////////
4616        var start = new Date().getTime();
4617
4618        var deviceSpeed = "fst"; //assume devices are fast, then downgrade based on evidence
4619
4620        var firefox = false;
4621        if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) {
4622            firefox = true;
4623        }
4624
4625        //check and report on WebP abilities
4626
4627        var webpOK = true; //assume true at start (for most modern browsers)
4628
4629        function checkWEBP(feature) {
4630
4631            var kTestImages = {
4632                lossy: "UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",
4633                lossless: "UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==",
4634                alpha: "UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==",
4635                animation: "UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA"
4636            };
4637
4638            var img = new Image();
4639
4640            img.onload = function () {
4641                webpOK = true;
4642                console.log("WebP Assessment PASS");
4643            };
4644
4645            img.onerror = function () {
4646                webpOK = false;
4647                console.log("WebP Assessment FAIL");
4648            };
4649
4650            img.src = "data:image/webp;base64," + kTestImages[feature];
4651
4652        }
4653
4654        checkWEBP("lossy");
4655
4656        setTimeout(function () {
4657            if (!webpOK) {
4658
4659                var performanceWarning = "Ooops! It looks like your browser can't support the WebP graphics format. It could be that your browser or your device is quite old. Some graphics may be missing, and some games may not work correctly. If you can, please upgrade.";
4660
4661                switch (shortLang) {
4662                    case "es": //spanish
4663                        performanceWarning = "¡Ups! Parece que su navegador no admite el formato de gráficos WebP. Puede ser que tu navegador o tu dispositivo sean bastante antiguos. Es posible que falten algunos gráficos y que algunos juegos no funcionen correctamente. Si puede, actualice.";
4664                        break;
4665                    case "fr": //french
4666                        performanceWarning = "Oups ! Il semble que votre navigateur ne prenne pas en charge le format graphique WebP. Il se peut que votre navigateur ou votre appareil soit assez ancien. Certains graphiques peuvent manquer et certains jeux peuvent ne pas fonctionner correctement. Si vous le pouvez, veuillez mettre à niveau.";
4667                        break;
4668                    case "de": //german
4669                        performanceWarning = "Ups! Offenbar unterstützt Ihr Browser das WebP-Grafikformat nicht. Es könnte sein, dass Ihr Browser oder Ihr Gerät ziemlich alt ist. Möglicherweise fehlen einige Grafiken und einige Spiele funktionieren möglicherweise nicht richtig. Wenn Sie können, führen Sie bitte ein Upgrade durch.";
4670                        break;
4671                    case "id": //indonesian
4672                        performanceWarning = "Ups! Sepertinya browser Anda tidak mendukung format grafik WebP. Bisa jadi browser atau perangkat Anda sudah cukup tua. Beberapa grafik mungkin hilang, dan beberapa permainan mungkin tidak berfungsi dengan benar. Jika bisa, silakan tingkatkan.";
4673                        break;
4674                    case "el": //greek
4675                        performanceWarning = "Ουπς! Φαίνεται ότι το πρόγραμμα περιήγησής σας δεν μπορεί να υποστηρίξει τη μορφή γραφικών WebP. Μπορεί να είναι ότι το πρόγραμμα περιήγησής σας ή η συσκευή σας είναι αρκετά παλιά. Μπορεί να λείπουν ορισμένα γραφικά και ορισμένα παιχνίδια μπορεί να μην λειτουργούν σωστά. Αν μπορείτε, αναβαθμίστε.";
4676                        break;
4677                    case "nl": //dutch
4678                        performanceWarning = "Oeps! Het lijkt erop dat uw browser het grafische WebP-formaat niet ondersteunt. Het kan zijn dat uw browser of uw apparaat behoorlijk oud is. Sommige afbeeldingen ontbreken mogelijk en sommige games werken mogelijk niet correct. Als je kunt, upgrade dan.";
4679                        break;
4680                    case "pl": //polish
4681                        performanceWarning = "Ups! Wygląda na to, że Twoja przeglądarka nie obsługuje formatu graficznego WebP. Być może Twoja przeglądarka lub urządzenie jest dość stare. Może brakować niektórych elementów graficznych, a niektóre gry mogą nie działać poprawnie. Jeśli możesz, uaktualnij.";
4682                        break;
4683                    case "pt": //portuguese
4684                        performanceWarning = "Ops! Parece que seu navegador não suporta o formato gráfico WebP. Pode ser que o seu navegador ou dispositivo seja bastante antigo. Alguns gráficos podem estar faltando e alguns jogos podem não funcionar corretamente. Se você puder, atualize.";
4685                        break;
4686                    default:
4687                    // none
4688                }
4689
4690                performanceAlert.innerHTML = "😟 " + performanceWarning;
4691                performanceAlert.style.display = "block";
4692            }
4693
4694        }, 5000); //give time for test, and user
4695
4696        // categorize user by screen resolution / aspect ratio - first getting aspect ratio as if user has device in landscape (tablet) mode
4697        var aspectRatio = screen.width / screen.height;
4698        if (aspectRatio < 1) {
4699            aspectRatio = screen.height / screen.width;
4700        }
4701
4702        if (os == "Android") {
4703            var androidBand = "Low";
4704
4705            if (androidVersionTruncated <= 8) {
4706                deviceSpeed = "Slw";
4707            }
4708
4709            //alert(androidVersionTruncated);
4710
4711            if (androidVersionTruncated >= 9 && androidVersionTruncated <= 10) {
4712                androidBand = "Mid";
4713            }
4714
4715            if (androidVersionTruncated >= 11) {
4716                androidBand = "High";
4717            }
4718
4719            //console.log("Android version: " + androidVersion);
4720            //alert(userAgent);
4721            //alert("Android version: " + androidVersion);
4722
4723
4724            deviceCategory += androidBand;
4725        }
4726
4727        //console.log(deviceCategory);
4728
4729        //BREAKPOINT
4730        ////////////
4731        if (breakPoint) {
4732            gtag('event', 'Breakpoint 04', {
4733                'event_category': 'Debug',
4734                'event_label': 'Breakpoints'
4735            });
4736        }
4737        ////////////
4738        ////////////
4739
4740
4741
4742
4743
4744
4745        var welcomeText;
4746
4747        var testLang = ['es', 'pt', 'fr', 'pl', 'el', 'id', 'ar', 'he', 'hr', 'sk', 'tr', 'sr', 'ro', 'ru', 'th', 'de', 'it', 'hu', 'bg', 'da', 'nb', 'sv', 'ca', 'cs', 'sl', 'ka', 'nl', 'zh', 'sq', 'lt', 'lv', 'vi'];
4748
4749        if (debug) {
4750            //lang = testLang[0]; //0-es to xx
4751        }
4752
4753        //show text blast effect a % of the time
4754        var doBlast = false;
4755        if (debug || Math.random() > 0.9) {
4756            doBlast = true;
4757        }
4758
4759        switch (lang.slice(0, 2)) {
4760            case "es": //spanish
4761                welcomeText = "¡Bienvenido!";
4762                break;
4763            case "pt": //portuguese
4764                welcomeText = "Bem-vindo!";
4765                break;
4766            case "fr": //french
4767                welcomeText = "Bienvenue!";
4768                break;
4769            case "pl": //polish
4770                welcomeText = "Witaj!";
4771                break;
4772            case "el": //greek
4773                welcomeText = "Καλώς ήλθες!";
4774                doBlast = false;
4775                break;
4776            case "id": //indonesian
4777                welcomeText = "Selamat datang!";
4778                break;
4779            case "ar": //arabic
4780                welcomeText = "مرحباً!"; //hi / hello
4781                doBlast = false;
4782                break;
4783            case "he": //hebrew
4784                welcomeText = "ברוך הבא";
4785                doBlast = false;
4786                break;
4787            case "hr": //croatian
4788                welcomeText = "Dobrodošli!";
4789                break;
4790            case "sk": //slovak
4791                welcomeText = "Vitajte!";
4792                break;
4793            case "tr": //turkish
4794                welcomeText = "Hoşgeldiniz!";
4795                break;
4796            case "sr": //serbian
4797                welcomeText = "Добродошли!"; //Serbia uses both Cyrillic and Latin alphabets
4798                doBlast = false;
4799                break;
4800            case "ro": //romanian
4801                welcomeText = "Bine ai venit!";
4802                break;
4803            case "ru": //russian
4804                welcomeText = "Добро пожаловать!";
4805                doBlast = false;
4806                break;
4807            case "th": //thai
4808                welcomeText = "ยินดีต้อนรับ";
4809                doBlast = false;
4810                break;
4811            case "de": //german
4812                welcomeText = "Willkommen!";
4813                break;
4814            case "it": //italian
4815                welcomeText = "Benvenuto!";
4816                break;
4817            case "hu": //hungarian
4818                welcomeText = "Üdvözlünk!";
4819                break;
4820            case "bg": //bulgarian
4821                welcomeText = "Здравей!";
4822                doBlast = false;
4823                break;
4824            case "da": //danish
4825            case "nb": //norwegian
4826                welcomeText = "Velkommen!";
4827                break;
4828            case "sv": //swedish
4829                welcomeText = "Välkommen!";
4830                break;
4831            case "ca": //catalan
4832                welcomeText = "Benvingut!";
4833                break;
4834            case "cs": //czech
4835                welcomeText = "Vítejte!";
4836                break;
4837            case "sl": //slovenian
4838                welcomeText = "Dobrodošli!";
4839                break;
4840            case "ka": //georgian
4841                welcomeText = "მოგესალმებით!";
4842                doBlast = false;
4843                break;
4844            case "nl": //dutch
4845                welcomeText = "Welkom!";
4846                break;
4847            case "zh": //chinese
4848                welcomeText = "欢迎!";
4849                doBlast = false;
4850                break;
4851            case "sq": //albanian
4852                welcomeText = "Mirë se vini!";
4853                break;
4854            case "lt": //lithuanian
4855                welcomeText = "Sveiki!";
4856                break;
4857            case "lv": //latvian
4858                welcomeText = "Laipni lūdzam!";
4859                break;
4860            case "vi": //vietnamese
4861                welcomeText = "Chào mừng!";
4862                break;
4863            default:
4864                welcomeText = "Welcome!";
4865        }
4866
4867        var commonLang = false;
4868
4869        switch (lang.slice(0, 2)) {
4870            case "ar":
4871            case "bg":
4872            case "ca":
4873            case "cs":
4874            case "da":
4875            case "de":
4876            case "el":
4877            case "en":
4878            case "es":
4879            case "fr":
4880            case "he":
4881            case "hr":
4882            case "hu":
4883            case "id":
4884            case "it":
4885            case "jp":
4886            case "ka":
4887            case "lt":
4888            case "lv":
4889            case "nb":
4890            case "pl":
4891            case "pt":
4892            case "ro":
4893            case "sk":
4894            case "sl":
4895            case "sq":
4896            case "sr":
4897            case "sv":
4898            case "th":
4899            case "tr":
4900            case "vi":
4901            case "zh":
4902                commonLang = true;
4903                break;
4904        }
4905
4906        if (isSchool || specialPeriod == "christmas" || specialPeriod == "halloween") {
4907            welcomeText = "";
4908        }
4909
4910        if (welcomeText.length > 10) {
4911            welcome.style.fontSize = "11vmin";
4912            welcome.style.letterSpacing = "1vmin";
4913        }
4914
4915        if (welcomeText.length > 12) {
4916            welcome.style.fontSize = "8vmin";
4917            welcome.style.letterSpacing = "0";
4918        }
4919
4920        //if (isSchool || (pageViews > 9 && !touchDevice && Math.random() > 0.99)) { //0.99 1% //temp increased from 10, 0.99
4921        if (isSchool || Math.random() > 0.8) { //temp increase
4922            welcomeText = "CLICK LOGO X10";
4923            welcome.style.color = "lime";
4924            welcome.style.fontSize = "8vmin";
4925            welcome.style.letterSpacing = "0";
4926        }
4927
4928        //welcome.innerHTML = welcomeText;
4929
4930
4931
4932
4933        /////////////////////////////////////////// BIT OF FUN - RANDOM TEXT EFFECT
4934
4935        //character replace function
4936        function setCharAt(str, index, chr) {
4937            if (index > str.length - 1) return str;
4938            return str.substr(0, index) + chr + str.substr(index + 1);
4939        }
4940
4941        //all permissable characters   
4942        var chars = "Üūüừöäàëšşí¡-!.?&' abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
4943
4944        var newWelcomeText = "";
4945        var stringLength = welcomeText.length;
4946        var testChar1 = "";
4947        var testChar2 = "";
4948
4949        //generate random string of the same length as the welcome text
4950        var i;
4951        for (i = 0; i < welcomeText.length; i++) {
4952            newWelcomeText += chars.substr((Math.floor(Math.random() * chars.length)), 1);
4953        }
4954
4955        if (doBlast) {
4956            var textTimer;
4957            setTimeout(function () {
4958                textTimer = setInterval(function () {
4959                    blastText()
4960                }, 30);
4961            }, 3000);
4962        } else {
4963            welcome.innerHTML = welcomeText;
4964        }
4965
4966        function blastText() {
4967
4968            for (i = 0; i < 20; i++) { //to speed up operation, do x loops each call
4969
4970                //generate random character index
4971                randCharIndex = Math.floor(Math.random() * stringLength);
4972
4973                //get random chars
4974                testChar1 = chars.substr((Math.floor(Math.random() * chars.length)), 1); //random character from the full list of characters
4975                testChar2 = welcomeText.substr(randCharIndex, 1); //random character from string
4976
4977                //replace character if correct
4978                if (testChar1 == testChar2) {
4979                    newWelcomeText = setCharAt(newWelcomeText, randCharIndex, testChar1); //if there is a match, update newWelcomeText with the match
4980                }
4981
4982                //write one random new character in each cycle
4983                if (newWelcomeText.substr(randCharIndex, 1) != welcomeText.substr(randCharIndex, 1)) {
4984                    newWelcomeText = setCharAt(newWelcomeText, randCharIndex, testChar1);
4985                }
4986
4987                //when matching string is found, stop operation
4988                if (newWelcomeText == welcomeText) {
4989                    clearInterval(textTimer);
4990                }
4991
4992                welcome.innerHTML = newWelcomeText;
4993
4994            } //end for
4995
4996        } // end func
4997
4998        ///////////////////////////////////////////
4999
5000        window.addEventListener('load', pageLoaded);
5001
5002        function pageLoaded() {
5003            var finished = new Date().getTime();
5004            var loadingTime = 1 + finished - start;
5005
5006            setTimeout(function () {
5007
5008                //acquisition analytics
5009                if (pageViews == 1 || pageViews == 5 || pageViews == 20) {
5010                    gtag('event', ('User Acquisition : ' + pageViews), {
5011                        'event_category': 'Acquisition',
5012                        'event_label': 'User Tally'
5013                    });
5014                }
5015
5016                if (gamePlays == 1 || gamePlays == 5 || gamePlays == 20) {
5017                    gtag('event', ('User Acquisition : ' + gamePlays), {
5018                        'event_category': 'Acquisition',
5019                        'event_label': 'User Tally'
5020                    });
5021                }
5022
5023                var dBugOutput = deviceCategory + " ds:" + deviceSpeed + " sw:" + screen.width + " sh:" + screen.height + " sr:" + (Math.round(aspectRatio * 100) / 100) + " plt:" + loadingTime + " scl:" + scriptsLoadable + " rnd:" + userRandom + " gfx:" + gfxPerformance + "|" + gfxPerformanceCategory + " pv:" + pageViews + " gp:" + gamePlays + " du:" + dressupCounter + " " + build;
5024                dBugText.innerHTML = dBugOutput;
5025            }, 2000);
5026            //dBugOutput += "<br>" + navigator.appVersion + " --- " + navigator.userAgent + " --- " + navigator.appName + " --- " + parseFloat(navigator.appVersion) + " --- " + parseInt(navigator.appVersion, 10);
5027
5028            if (Math.random() > 0.99) {
5029                loadingTime = Math.round(loadingTime / 1000);
5030                if (loadingTime > 19) {
5031                    loadingTime = "20+";
5032                }
5033                loadingTime += "s";
5034                gtag('event', ('Homepage Loaded : ' + loadingTime), {
5035                    'event_category': 'Connection Speed Assessment (1% sample)',
5036                    'event_label': 'User Speed Test'
5037                });
5038            }
5039
5040            //once page is loaded, any events can be recorded at 100% sample (adjust as necessary)
5041
5042            setTimeout(function () {
5043                if (!isSchool) {
5044                    gtag('config', 'G-WKK8W70CG6', { //user triggered events 100% sample     was: UA-124684579-8
5045                        'send_page_view': false
5046                    });
5047                }
5048
5049                //referral analytics (will always be recorded at 100% sample
5050                if (ref.indexOf("fbclid") > -1) { //formerly rFB
5051                    gtag('event', 'Facebook', {
5052                        'event_category': 'Referral',
5053                        'event_label': 'Social Share Visit'
5054                    });
5055                }
5056
5057                if (ref.indexOf("rTW") > -1) { //now redundant
5058                    gtag('event', 'Twitter', {
5059                        'event_category': 'Referral',
5060                        'event_label': 'Social Share Visit'
5061                    });
5062                }
5063
5064            }, 10000);
5065
5066        }
5067
5068        //SHUFFLE
5069        //////////////////////////////////////////////
5070
5071        function shuffleArray(array) {
5072            for (let i = array.length - 1; i > 0; i--) {
5073                const j = Math.floor(Math.random() * (i + 1));
5074                [array[i], array[j]] = [array[j], array[i]];
5075            }
5076        }
5077
5078        function shuffleArrayTopTen(array) {
5079
5080            //console.log("shuffling top 10 games");
5081
5082            for (let i = 9; i > 0; i--) {
5083                const j = Math.floor(Math.random() * (i + 1));
5084                [array[i], array[j]] = [array[j], array[i]];
5085            }
5086        }
5087
5088    </script>
5088
5089
5090    <!-- deliberate code splitting for fid -->
5091
5092    
5092<script>
5093        ///DEFINE GAMES
5094        ///////////////
5095        //Landscape Portrait | Action Adventure Card Dressup Combat Creative Jobs Motorsport 2Player Platform Puzzle Retro Shooting Sport Strategy | Ages4-7 Ages7-10
5096        //name(0) path(1) path(2) path(3) img(4) devices(5) genres(6) date(7) pop(8-desktop, 9-android, 10-ipad, 11-iphone)
5097        //
5098        //!p!
5099        //!t! 
5100        //!pt! p/t weighting
5101        //!c! 
5102        //!s! speed
5103        //ios: first "" for both, second "" for iphone only
5104
5105        var games = [
5106            ["Power_Pamplona", "z/games/powerpamplona/game", "", "", "powerpamplona360x100Min.png", "Desktop iPadOld iPadNew iPhone A!c!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Archivex", "2023-03-11", 1, 80, 80, 80],
5107            ["Bloxorz", "z/games/bloxorz/game", "", "", "bloxorz360x100Min.png", "Desktop", "Landscape Puzzle Archivex", "2020-09-25", 2, 11, 11, 11], //old-ruffle
5108            ["Mad_Fish", "z/games/madfish/game", "", "", "madfish360x100Min.png", "Desktop", "Landscape Action 2Player", "2021-04-08", 3, 800, 800, 800],
5109            ["Penalty_Challenge", "z/games/penaltychallenge/game", "", "", "penaltychallenge360x100Min.png", "Desktop", "Landscape Action Ball Sport", "2022-06-11", 4, 11, 11, 11], //users can't defend bottom of screen... messed up on touch
5110            ["Car_Simulator_Arena", "z/games/carsimulatorarena/game", "", "", "carsimulatorarena360x100Min.png", "Desktop", "Landscape 3D Action Motorsport FGO", "2022-03-07", 5, 11, 11, 11],
5111            ["Chess", "z/games/chess/game", "", "", "chess360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle Strategy 2Player", "2022-09-05", 6, 3, 100, 100],
5112            ["Tic_Tac_Toe_XXO", "z/games/tictactoexxo/game", "", "", "tictactoexxo360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait 2Player Puzzle", "2022-08-03", 7, 31, 75, 34],
5113            ["Color_Link", "z/games/colorlink/game", "", "", "colorlink360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2024-12-16", 8, 51, 4, 31],
5114            ["Smiling_Glass_Pro_Pourer", "z/games/smilingglasspropourer/game", "", "", "smilingglasspropourer360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2021-07-12", 9, 800, 3, 800],
5115            ["8_Ball_Pro", "z/games/8ballpro/game", "", "", "8ballpro360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Ball 2Player Sport", "2022-05-27", 10, 150, 5, 150],
5116            //
5117            ["Fireboy_And_Watergirl~Forest_Temple", "z/games/fireboyandwatergirlforest/game", "", "", "fireboyandwatergirlforest360x100Min.png", "Desktop", "Landscape Action Adventure 2Player Puzzle Platform", "2021-01-01", 21, 999, 999, 999], //GRP
5118            ["Fireboy_And_Watergirl~Light_Temple", "z/games/fireboyandwatergirllight/game", "", "", "fireboyandwatergirllight360x100Min.png", "Desktop", "Landscape Action Adventure 2Player Puzzle Platform", "2021-01-01", 22, 999, 999, 999], //GRP
5119            ["Fireboy_And_Watergirl~Ice_Temple", "z/games/fireboyandwatergirlice/game", "", "", "fireboyandwatergirlice360x100Min.png", "Desktop", "Landscape Action Adventure 2Player Puzzle Platform", "2021-01-27", 23, 999, 999, 999], //GRP
5120            ["Fireboy_And_Watergirl~Crystal_Temple", "z/games/fireboyandwatergirlcrystal/game", "", "", "fireboyandwatergirlcrystal360x100Min.png", "Desktop", "Landscape Action Adventure 2Player Puzzle Platform", "2021-01-27", 24, 999, 999, 999], //GRP
5121            ["Fireboy_And_Watergirl~Cute_Remake", "z/games/fireboyandwatergirlcuteremake/game", "", "", "fireboyandwatergirlcuteremake360x100MinZ.webp", "Desktop", "Landscape Action Adventure 2Player Platform Puzzle", "2025-03-18", 24.1, 999, 999, 999], //GRP
5122            //
5123            ["Panda_Shop_Simulator", "z/games/pandashopsimulator/game", "", "", "pandashopsimulator360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Food Jobs Strategy", "2025-11-20", 30, 30, 30, 30],
5124            //
5125            //["Thanksgiving~Party_Prep", "z/games/thanksgivingpartyprep/game", "", "", "thanksgivingpartyprep360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup", "2024-12-07", 30, 30, 30, 30],
5126            //["Shopaholic_Black_Friday", "z/games/shopaholicblackfri
5126day/game", "", "", "shopaholicblackfriday360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-11-14", 30, 30, 30, 30],
5127            //
5128            //["Ellie_Easter_Adventure", "z/games/ellieeasteradventure/game", "", "", "ellieeasteradventure360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Creative Dressup Puzzle Easter", "2025-04-16", 5000, 5000, 5000, 5000],
5129            //["BFFs_Easter_Photobooth", "z/games/bffseasterphotoboothparty/game", "", "", "bffseasterphotoboothparty360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Creative Dressup Easter NFS", "2025-04-16", 5000, 5000, 5000, 5000],
5130            //["Bunny_Boost", "z/games/bunnyboost/game", "", "", "bunnyboost120x33Min.webp", "Desktop", "Landscape Action Adventure Platform Puzzle Retro", "2026-03-31", 5000, 5000, 5000, 5000], //d:0.36
5131            //
5132            ["4_Colors", "z/games/4colors/game", "", "", "4colors360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Math Puzzle Strategy", "2021-03-02", 30, 51, 8, 35],
5133            ["Four_Colors_X", "z/games/fourcolorsx/game", "", "", "fourcolorsx360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Math Puzzle Strategy", "2024-12-06", 31, 1, 90, 5],
5134            //
5135            ["Super_Onion_Boy", "z/games/superonionboy/game", "", "", "superonionboy120x33Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Platform Retro", "2020-01-17", 32, 11, 11, 10.5],
5136            ["Super_Onion_Boy_2", "z/games/superonionboy2/game", "", "", "superonionboy2120x33Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Platform Retro", "2025-03-17", 33, 12, 12, 10.5],
5137            //
5138            ["Moto_X3M", "z/games/motox3m/game", "", "", "motox3m360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Motorsport", "2019-08-25", 35, 46, 17, 25], //GRP
5139            ["Moto_X3M~Pool_Party", "z/games/motox3mpoolparty/game", "", "", "motox3mpoolparty360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Motorsport", "2019-10-04", 35, 46, 18, 25], //GRP
5140            ["Moto_X3M~Spooky_Land", "z/games/motox3mspookyland/game", "", "", "motox3mspookyland360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh Archivex", "Landscape Action Halloween Motorsport", "2019-10-04", 36, 47, 19, 26], //GRP
5141            ["Moto_X3M~Winter", "z/games/motox3mwinter/game", "", "", "motox3mwinter360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Motorsport Xmas", "2019-08-25", 37, 48, 20, 27], //GRP //motox3mwinter360x100Min-xmas.png
5142            //
5143            ["Bob_The_Robber", "z/games/bobtherobber/game", "", "", "bobtherobber360x100Min.png", "Desktop", "Landscape Action Puzzle Platform NFS", "2021-01-01", 38, 11, 11, 11],
5144            ["Bob_The_Robber_2", "z/games/bobtherobber2/game", "", "", "bobtherobber2360x100Min.png", "Desktop", "Landscape Action Puzzle Platform NFS", "2021-01-01", 39, 11, 11, 11],
5145            //
5146            ["Death Chase", "z/games/deathchase/game", "", "", "deathchase360x100Min.png", "Desktop i!c!PadOld iPadNew iPhone A!c!ndroidLow AndroidMid AndroidHigh", "Landscape Action Combat Motorsport NFS", "2017-06-24", 40, 55, 13, 11], //iOS later
5147            ["Death Chase 2", "z/games/deathchase2/game", "", "", "deathchase2360x100Min.png", "Desktop i!c!PadOld iPadNew iPhone A!c!ndroidLow AndroidMid AndroidHigh", "Landscape Action Combat Motorsport NFS", "2020-09-15", 41, 56, 13, 11], //iOS later?
5148            ["Death Chase 3", "z/games/deathchase3/game", "", "", "deathchase3360x100Min.jpg", "Desktop i!c!PadOld iPadNew iPhone A!c!ndroidLow AndroidMid AndroidHigh", "Landscape Action Combat Motorsport NFS", "2020-08-24", 42, 57, 13, 11], //iOS later?
5149            //
5150            ["Friv_Wordsearch", "z/games/frivwordsearch/game", "", "", "frivwordsearch360x100Min.png", "Desktop", "Portrait 2Player Puzzle", "2022-08-03", 44, 150, 150, 150],
5151            //
5152            ["Crazy_Candy_Creator", "z/games/crazycandycreator/game", "", "", "crazycandycreator360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Food Jobs", "2021-08-12", 45, 20, 42, 42], //GRP
5153            ["Incredible_Ice_Cream~Inventor", "z/games/incredibleicecreaminventor/game", "", "", "incredibleicecreaminventor360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Food Jobs", "2022-01-28", 46, 21, 43, 43], //GRP 
5154            ["Daft_Donut~Designer", "z/games/daftdonutdesigner/game", "", "", "daftdonutdesigner360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Food Jobs", "2023-03-03", 47, 22, 44, 44], //GRP
5155            ["Cook_Crazy", "z/games/cookcrazy/game", "", "", "cookcrazy360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Food Jobs", "2024-01-06", 48, 23, 45, 45], //GRP
5156            ["Supreme_Soda_Shaker", "z/games/supremesodashaker/game", "", "", "supremesodashaker360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Food Jobs", "2025-03-13", 49, 24, 46, 46], //GRP
5157            //
5158            ["Basket_Champs", "z/games/basketchamps/game", "", "", "basketchamps360x100Min.png", "Desktop", "Landscape Sport", "2017-06-26", 50, 0, 0, 0],
5159            ["Penalty_Shootout~Multi League", "z/games/penaltyshootoutmultileague/game", "", "", "penaltyshootoutmultileague-min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Sport", "2017-11-03", 51, 49, 1600, 2100],
5160            ["Penguin_Diner", "z/games/penguindiner/game", "", "", "penguindiner360x100Min.png", "Desktop i!c!PadOld iPadNew iPhone AndroidMid AndroidHigh", "Landscape Jobs Strategy", "2022-07-06", 52, 60, 50, 73],
5161            ["From_Nerd_To_School_Popular", "z/games/fromnerdtoschoolpopular/game", "", "", "fromnerdtoschoolpopular360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2025-05-08", 52, 9, 9, 73],
5162            ["Shortcut~Race", "z/games/shortcutrace/game", "", "", "shortcutrace360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait 3D Action", "2022-08-01", 53, 30, 26, 15],
5163            ["Cannon_Basketball", "z/games/cannonbasketball/game", "", "", "cannonbasketball360x100Min.png", "Desktop", "Landscape Action Ball Puzzle Shooting", "2011-01-01", 54, 11, 11, 11],
5164            ["Tetra Blocks", "z/games/tetrablocks/game", "", "", "tetrablocks360x100Min.png", "Desktop i!t!PadOld i!t!PadNew iPhone A!t!ndroidLow AndroidMid AndroidHigh", "Portrait Puzzle Retro", "2020-12-31", 55, 800, 800, 16],
5165            ["Master_Checkers", "z/games/mastercheckers/game", "", "", "mastercheckers360x100Min.png", "Desktop i!t!PadOld i!t!PadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait 2Player Puzzle Strategy NFS", "2021-03-11", 56, 800, 800, 800],
5166            ["Extreme Car Parking", "z/games/extremecarparking/game", "", "", "extremec
5166arparking360x100Min.png", "Desktop", "Landscape Action Motorsport", "2019-09-05", 57, 300, 100, 220],
5167            ["Bus_Parking_Out", "z/games/busparkingout/game", "", "", "busparkingout360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle Strategy", "2025-06-04", 57, 300, 100, 14],
5168            //
5169            ["Charge_It", "z/games/chargeit/game", "", "", "chargeit360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2022-01-07", 58, 52, 150, 40], //updated-22-07-2026
5170            //["Charge_It", "z/games/chargeitios/game", "", "", "chargeit360x100Min.png", "iPadOld iPadNew iPhone", "Portrait Puzzle", "2022-01-07", 58, 52, 150, 13], //dev-supplied-build-qad-fix-nko-later
5171            //
5172            ["Bad_Ice_Cream", "z/games/badicecream/game", "", "", "badicecream180x50Min.webp", "Desktop", "Portrait Action 2Player Retro", "2025-06-13", 59, 59, 68, 150],
5173            ["Friv_Soccer_Heads", "z/games/frivsoccerheads/game", "", "", "frivsoccerheads360x100Min.png", "Desktop", "Landscape Action Ball 2Player Sport", "2023-02-22", 59, 59, 68, 150], //no-good-for-touch
5174            ["Sprint_Club_Nitro", "z/games/sprintclubnitro/game", "", "", "sprintclubnitro-min.jpg", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Motorsport", "2017-06-26", 59, 59, 68, 150],
5175            ["Biggest_Burger~Challenge", "z/games/biggestburgerchallenge/game", "", "", "biggestburgerchallenge360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Food Jobs", "2020-03-08", 60, 53, 60, 41],
5176            ["Highway_Bike~Simulator", "z/games/highwaybikesimulator/game", "", "", "highwaybikesimulator360x100Min.png", "Desktop", "Landscape 3D Action Motorsport NFS SUO", "2024-01-16", 61, 68, 68, 68],
5177            ["Air_Dogs_Of_WW2", "z/games/airdogsofww2/game", "", "", "airdogsofww2360x100Min.jpg", "Desktop", "Landscape 3D Action Combat Shooting NFS", "2020-10-06", 62, 999, 999, 999],
5178            ["Soccer_Online", "z/games/socceronline/game", "", "", "socceronline360x100Min.png", "Desktop", "Landscape Action Ball Sport", "2021-01-07", 63, 800, 800, 800], //not-good-on-touch
5179            ["Zuma", "z/games/zuma/game", "", "", "zuma360x100Min.webp", "Desktop t!t!ouch", "Landscape Action Ball Retro Shooting Strategy Archivex SUO", "2024-11-07", 64, 68, 68, 68],
5180            ["Funny_Haircut", "z/games/funnyhaircut/game", "", "", "funnyhaircut360x100Min.png", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Creative Dressup Jobs Puzzle", "2020-11-05", 65, 26, 20, 800],
5181            ["One_Stroke", "z/games/onestroke/game", "", "", "onestroke360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2025-01-18", 66, 68, 68, 68],
5182            //
5183            ["Adam_And_Eve", "z/games/adamandeve/game", "", "", "adamandeve360x100Min.png", "Desktop i!c!PadOld iPadNew iPhone AndroidMid AndroidHigh", "Landscape Adventure Puzzle NFS", "2021-01-14", 67, 65, 65, 65],
5184            ["Adam_And_Eve_2", "z/games/adamandeve2/game", "", "", "adamandeve2360x100Min.png", "Desktop i!c!PadOld iPadNew iPhone AndroidMid AndroidHigh", "Landscape Adventure Puzzle NFS", "2021-01-14", 68, 65, 65, 65],
5185            ["Adam_And_Eve_3", "z/games/adamandeve3/game", "", "", "adamandeve3360x100Min.png", "Desktop i!c!PadOld iPadNew i!t!Phone A!c!ndroidMid A!c!ndroidHigh", "Landscape Adventure Puzzle NFS", "2021-01-14", 69, 65, 65, 65], //ruffle-crashes-for-some-users?
5186            ["Ice_Queen_Hospital", "z/games/icequeenhospitalrecovery/game", "", "", "icequeenhospitalrecovery360x100Min.jpg", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Jobs NFS SUO", "2020-09-02", 75, 1470, 1470, 1470],
5187            //
5188            //NEW 80
5189            ["Paper_Flight", "z/games/paperflight/game", "", "", "paperflight360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure New", "2026-09-29", 80, 80, 80, 80],
5190            ["Soccer_Arena_X", "z/games/soccerarenax/game", "", "", "soccerarenax360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Ball 2Player Sport New", "2026-09-29", 80, 80, 80, 80],
5191            ["Stylish_Nail_Art", "z/games/stylishnailart/game", "", "", "stylishnailart360x100Min.webp", "Desktop i!c!PadOld i!c!PadNew i!c!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs Newish", "2026-09-18", 80, 80, 80, 80], //seems to crash on iOS //speak to dev
5192            ["Purp", "z/games/purp/game", "", "", "purp120x33Min.webp", "Desktop t!t!ouch", "Landscape Action Adventure Platform Retro Newish", "2026-09-12", 80, 80, 80, 80],
5193            ["Little_Dentist_Dash", "z/games/littledentistdash/game", "", "", "littledentistdash360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Jobs Newish", "2026-09-02", 80, 80, 80, 80],
5194            ["Juice_Flow", "z/games/juiceflow/game", "", "", "juiceflow360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle Newish", "2026-08-26", 80, 80, 80, 80],
5195            ["Trucktopolis_Cooking_Chaos", "z/games/trucktopoliscookingchaos/game", "", "", "trucktopoliscookingchaos360x100Min.webp", "Desktop i!t!PadOld i!t!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Action Food Jobs", "2026-08-03", 80, 80, 80, 80],
5196            ["Block_Builder", "z/games/blockbuilder/game", "", "", "blockbuilder360x100Min.webp", "Desktop i!t!PadOld i!t!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2026-07-29", 80, 80, 80, 80],
5197            ["Grab_Pack_Playtime", "z/games/grabpackplaytime/game", "", "", "grabpackplaytime360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2026-07-22", 80, 80, 80, 80],
5198            ["Funny_Doctor_Emergency", "z/games/funnydoctoremergency/game", "", "", "funnydoctoremergency360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Jobs", "2026-07-16", 80, 80, 80, 80],
5199            ["Froggy_Road", "z/games/froggyroad/game", "", "", "froggyroad360x100Min.webp", "Desktop t!t!ouch", "Portrait 3Action Adventure", "2026-06-19", 80, 80, 80, 80],
5200            ["Catches_Aliens", "z/games/catchesaliens/game", "", "", "catchesaliens360x100Min.png", "Desktop i!t!PadOld i!t!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2026-06-16", 80, 80, 80, 80],
5201            ["Fashion_Makeover_Dash", "z/games/fashionmakeoverdash/game", "", "", "fashionmakeoverdash360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressupish", "2026-07-08", 80, 80, 80, 80],
5202            ["Infinite_Plinko", "z/games/infiniteplinko/game", "", "", "infiniteplinko360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Ball", "2026-06-11", 80, 80, 80, 80],
5203            ["Realm_Defenders", "z/games/realmdefenders/game", "", "", "realmdefenders360x100Min.webp", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Combat Puzzle Strategy", "2026-05-01", 80, 80, 80, 80],
5204            ["Escape_The_Dungeon", "z/games/escapethedungeon/game", "", "", "escapethedungeon360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape 3D Action Adventure Combat RPG", "2026-04-07", 80, 80, 80, 80],
5205            ["Path_Rider", "z/games/pathrider/game", "", "", "pathrider360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Motorsport Platform Puzzle", "2026-03-20", 80, 80, 80, 80],
5206            //
5207            ["Non_Mewtonian_Cat", "z/games/nonmewtoniancat/game", "", "", "nonmewtoniancat360x100Min.webp", "Desktop t!t!ouch", "Landscape Puzzle", "2026-02-14", 80, 80, 80, 80],
5208            ["Tap_To_Dunk", "z/games/taptodunk/game", "", "", "taptodunk360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Action Ball Sport", "2026-02-02", 80, 80, 80, 80],
5209            ["DIY_Phone_Case_Shop", "z/games/diyphonecaseshop/game", "", "", "diyphonecaseshop360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Jobs", "2026-01-23", 80, 80, 80, 80],
5210            ["Jumpy_Pop", "z/games/jumpypop/game", "", "", "jumpypop72x20Min.webp", "Desktop t!t!ouch", "Landscape Action Adventure Platform Retro", "2025-12-14", 80, 80, 80, 80],
5211            ["Tasty_Planet~Dinotime", "z/games/tastyplanetdinotime/game", "", "", "tastyplanetdinotime360x100Min.webp", "Desktop", "Landscape Action Adventure", "2025-11-21", 80, 80, 80, 80],
5212            ["ASMR_Puppy~Treatment", "z/games/asmrpuppytreatment/game", "", "", "asmrpuppytreatment360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs", "2025-12-24", 80, 80, 80, 80],
5213            ["ASMR_Kitty~Treatment", "z/games/asmrkittytreatment/game", "", "", "asmrkittytreatment360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs", "2025-12-06", 80, 80, 80, 80], //suspected crash on iOS //speak to dev
5214            ["Tiny_Baker~Ocean_Jelly_Cake", "z/games/tinybakeroceanjellycake/game", "", "", "tinybakeroceanjellycake360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Food Jobs", "2025-12-01", 80, 80, 80, 80],
5215            ["Tiny_Baker_Rainbow~Buttercream_Cake", "z/games/tinybakerrainbowbuttercreamcake/game", "", "", "tinybakerrainbowbuttercreamcake360x100Min.webp", "Desktop i!c!PadOld i!c!PadNew i!c!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Food Jobs", "2025-12-14", 80, 80, 80, 80], //suspected crash on iOS //speak to dev
5216            ["9_Ball_Pool", "z/games/9ballpool/game", "", "", "9ballpool360x100Min.webp", "Desktop t!t!ouch", "Landscape Ball Sport", "2025-11-17", 80, 80, 80, 80],
5217            ["Haunt_The_House", "z/games/hauntthehouse/game", "", "", "hauntthehouse360x100Min.webp", "Desktop iPadOld iPadNew i!t!Phone A!c!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Halloween", "2025-10-26", 80, 80, 80, 80],
5218            ["Electricman", "z/games/electricman/game", "", "", "electricman360x100Min.webp", "Desktop", "Landscape Action Combat NFS", "2025-10-26", 80, 80, 80, 80], //old-ruffle
5219            ["Empires~Of_Arkeia", "z/games/empiresofarkeia/game", "", "", "empiresofarkeia360x100Min.png", "Desktop", "Landscape Strategy NFS", "2025-11-21", 80, 80, 80, 80],
5220            ["Zuma_Boom", "z/games/zumaboom/game", "", "", "zumaboom360x100Min.jpg", "Desktop", "Landscape Action Ball NFS", "2019-08-15", 80, 80, 80, 80],
5221            ["Marbles_Garden", "z/games/marblesgarden/game", "", "", "marblesgarden360x100Min.png", "Desktop t!t!ouch", "Landscape Action Ball Strategy", "2023-08-11", 80, 80, 80, 80],
5222            ["Twee", "z/games/twee/game", "", "", "twee120x33Min.png", "Desktop", "Landscape Action Platform Retro Archivex FGO", "2023-04-22", 80, 80, 80, 80],
5223            ["Merge_World", "z/games/mergeworld/game", "", "", "mergeworld360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2024-08-11", 80, 80, 80, 80],
5224            ["Animal Connection", "z/games/animalconnection/game", "", "", "animalconnection360x100Min.png", "!p! Desktop", "Landscape Puzzle", "2019-09-20", 80, 80, 80, 80], //too small for touch
5225            ["Relic_Splatter", "z/games/relicsplatter/game", "", "", "relicsplatter360x100Min.png", "Desktop !p!", "Landscape Action Adventure Platform Retro Shooting", "2022-01-30", 80, 80, 80, 80],
5226            ["Laser_Cannon", "z/games/lasercannon/game", "", "", "lasercannon360x100Min.webp", "Desktop", "Landscape Action Puzzle Shooting", "2025-11-21", 80, 80, 80, 80],
5227            ["Murder_Stone_Age", "z/games/murderstoneage/game", "", "", "murderstoneage360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape NFS", "2026-07-02", 80, 80, 80, 80],
5228            ["Murder_Mafia", "z/games/murdermafia/game", "", "", "murdermafia360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape NFS", "2026-06-29", 80, 80, 80, 80],
5229            ["Stevedore", "z/games/stevedore/game", "", "", "stevedore360x100Min.webp", "Desktop", "Landscape Jobs Puzzle", "2025-11-21", 80, 80, 80, 80],
5230            ["Idle_Mining~Empire", "z/games/idleminingempire/game", "", "", "idleminingempire360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Jobs Strategy", "2025-09-22", 80, 80, 6, 16], //d:0.62
5231            ["Screw_Spin", "z/games/screwspin/game", "", "", "screwspin360x100Min.webp", "Desktop i!t!PadOld i!t!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2025-09-11", 80, 80, 80, 80],
5232            ["Tower_Of_Colors~Island_Edition", "z/games/towerofcolorsislandedition/game", "", "", "towerofcolorsislandedition360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait 3D Ball Puzzle", "2025-08-28", 80, 80, 80, 80],
5233            ["Run_Run_Duck", "z/games/runrunduck/game", "", "", "runrunduck120x33Min.webp", "Desktop i!t!PadOld i!t!PadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Adventure Platform Retro", "2025-08-23", 80, 80, 80, 80],
5234            ["My_Pet_Clinic", "z/games/mypetclinic/game", "", "", "mypetclinic360x100Min.webp", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Jobs", "2025-08-16", 80, 80, 80, 80],
5235            ["Domino~Adventure", "z/games/dominoadventure/game", "", "", "dominoadventure360x100Min.webp", "Desktop", "Landscape Puzzle Strategy NFS!tp!", "2025-08-16", 80, 80, 80, 80], //too small for touch
5236            ["Idle_Farming_Business", "z/games/idlefarmingbusiness/game", "", "", "idlefarmingbusiness360x100Min.webp", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Portrait Food Jobs", "2025-08-04", 80, 80, 80, 80],
5237            ["Brainy_Love", "z/games/brainylove/game", "", "", "brainylove360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Ball Puzzle", "2025-07-26", 80, 80, 80, 80],
5238            ["Space_Survivor", "z/games/spacesurvivor/game", "", "", "spacesurvivor360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Action Combat Shooting NFS", "2025-07-19", 80, 80, 80, 80],
5239            ["2048_Number_Match", "z/games/2048numbermatch/game", "", "", "2048numbermatch360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Math Puzzle Strategy NFS!tp!", "2025-07-20", 80, 80, 80, 80],
5240            ["Car_Park_Simulator", "z/games/carparksimulator/game", "", "", "carparksimulator360x100Min.png", "Desktop iPadOld i!c!PadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Motorsport", "2025-07-11", 80, 80, 80, 80],
5241            ["Oops_Lava", "z/games/oopslava/game", "", "", "oopslava360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2025-06-25", 80, 80, 8, 80],
5242            ["Trick_And_Trap", "z/games/trickandtrap/game", "", "", "trickandtrap360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Platform", "2025-05-24", 80, 80, 80, 80],
5243            ["Find_Mate", "z/games/findmate/game", "", "", "findmate360x100Min.webp", "Desktop i!t!PadOld i!t!PadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Adventure Puzzle", "2025-05-18", 80, 80, 80, 80],
5244            ["BFFs_Retro_Time_Travel", "z/games/bffsretrotimetravelfashion/game", "", "", "bffsretrotimetravelfashion360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2025-04-24", 80, 80, 80, 80],
5245            ["Noob_Parkour", "z/games/noobparkour/game", "", "", "noobparkour360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Platform Retro SUO", "2025-04-24", 80, 80, 80, 80],
5246            ["Pet_Salon_Simulator", "z/games/petsalonsimulator/game", "", "", "petsalonsimulator360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs", "2025-04-30", 80, 80, 80, 80],
5247            ["Bell_Madness", "z/games/bellmadness/game", "", "", "bellmadness360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape", "2025-04-07", 80, 80, 80, 80],
5248            ["Destress", "z/games/destress/game", "", "", "destress360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait", "2025-03-31", 80, 80, 80, 80],
5249            ["Lovie_Chics_In_Fantasy_World", "z/games/loviechicsinfantasyworld/game", "", "", "loviechicsinfantasyworld360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2025-03-18", 80, 80, 80, 80],
5250            ["Lucy_All_Season_Fashionista", "z/games/lucyallseasonfashionista/game", "", "", "lucyallseasonfashionista360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Creative Dressup NFS", "2025-03-25", 80, 80, 80, 80],
5251            ["Fashion_World_Simulator", "z/games/fashionworldsimulator/game", "", "", "fashionworldsimulator360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs NFS", "2025-05-12", 80, 80, 80, 80],
5252            ["Merge_Candy", "z/games/mergecandy/game", "", "", "mergecandy360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Ball NFS!p!", "2025-07-31", 80, 80, 80, 80],
5253            //
5254            ["Burger_Truck~Trump", "z/games/burgertrucktrump/game", "", "", "burgertrucktrump360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Food Jobs Strategy NFS", "2021-01-05", 100, 56, 40, 100],
5255            ["Raft_Wars", "z/games/raftwars/game", "", "", "raftwars360x100Min.png", "Desktop", "Landscape Action Shooting", "2021-03-27", 101, 999, 999, 999], //GRP
5256            ["Raft_Wars_2", "z/games/raftwars2/game", "", "", "raftwars2360x100Min.png", "Desktop", "Landscape Action Shooting Archivex", "2022-11-06", 102, 999, 999, 999], //GRP
5257            ["Farming_10x10", "z/games/farming10x10/game", "", "", "farming10x10360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Food Jobs Puzzle", "2023-08-26", 103, 10, 70, 6],
5258            ["Maze_Game", "z/games/mazegame/game", "", "", "mazegame360x100Min.webp", "Desktop", "Landscape Puzzle", "2024-04-16", 104, 68, 68, 68],
5259            ["Princess_Vampire~Wedding", "z/games/princessvampireweddingmakeover/game", "", "", "princessvampireweddingmakeover360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Halloween NFS", "2020-10-22", 105, 38, 25, 61],
5260            ["Sleeping_Princess~Nails_Spa", "z/games/sleepingprincessnailsspa/game", "", "", "sleepingprincessnailsspa360x100Min.jpg", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Jobs", "2019-08-25", 106, 58, 720, 360],
5261            ["Princess_Wedding_Dress", "z/games/princessweddingdressdesign/game", "", "", "princessweddingdressdesign360x100Min.jpg", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup NFS", "2020-03-08", 107, 80, 200, 190],
5262            ["My_Pet_Care_Salon", "z/games/mypetcaresalon/game", "", "", "mypetcaresalon360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Jobs Strategy", "2025-02-26", 108, 30, 23, 54],
5263            ["Ultimate_Offroad~Cars_2", "z/games/ultimateoffroadcars2/game", "", "", "ultimateoffroadcars2360x100Min.png", "Desktop", "Landscape 3D Action Motorsport", "2023-07-03", 109, 11, 11, 11],
5264            ["Endless_Siege", "z/games/endlesssiege/game", "", "", "endlesssiege360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Action Combat Strategy NFS", "2020-05-28", 110, 5, 2, 4],
5265            ["3D_Night_City~2_Player_Racing", "z/games/3dnightcity2playerracing/game", "", "", "3dnightcity2playerracing360x100Min.png", "Desktop", "Landscape 3D Action Motorsport 2Player", "2023-06-15", 111, 5000, 5000, 5000],
5266            ["Olivia_And_Crystal_BFFs", "z/games/oliviaandcrystalbffrealmakeover/game", "", "", "oliviaandcrystalbffrealmakeover360x100Min.jpg", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2019-08-25", 112, 480, 690, 63],
5267            ["Parking_Fury_3D", "z/games/parkingfury3d/game", "", "", "parkingfury3d360x100Min.png", "Desktop", "Landscape 3D Action Motorsport NFS", "2022-03-04", 113, 5000, 5000, 5000],
5268            ["Merge_The_Gems", "z/games/mergethegems/game", "", "", "mergethegems360x100Min.png", "Desktop i!t!PadOld i!t!PadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Math Puzzle", "2020-12-31", 114, 6, 800, 2],
5269            ["Big_Head_Football", "z/games/bigheadfootball/game", "", "", "bigheadfootball360x100Min.webp", "Desktop", "Landscape Action Ball 2Player Retro Sport", "2024-01-01", 115, 100, 100, 100],
5270            ["Royal_Jewels_Match", "z/games/royaljewelsmatch/game", "", "", "royaljewelsmatch360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Potrit Puzzle Strategy", "2025-06-18", 115, 100, 100, 100],
5271            //
5272            ["Fashion_Stars_Europe", "z/games/fashionstarseurope/game", "", "", "fashionstarseurope360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Jobs NFS", "2023-03-11", 116, 17, 35, 150],
5273            ["Fashion_Stars_USA", "z/games/fashionstarsusa/game", "", "", "fashionstarsusa360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs NFS", "2021-10-26", 117, 18, 36, 150],
5274            ["Fashion_Stars_Asia", "z/games/fashionstarsasia/game", "", "", "fashionstarsasia360x100Min.png", "Desktop iPadOld iPad
5274New iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Jobs NFS", "2023-02-17", 118, 19, 37, 150],
5275            //
5276            ["Zobland_Kidnap_Kerfuffle", "z/games/zoblandkidnapkerfuffle/game", "", "", "zoblandkidnapkerfuffle120x33Min.webp", "Desktop i!c!PadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Platform Retro", "2023-12-12", 119, 65, 61, 37],
5277            ["Zombie~Defense_War", "z/games/zombiedefensewar/game", "", "", "zombiedefensewar360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Halloween Strategy NFS", "2024-08-03", 121, 68, 68, 68], //too-big-for-ipad
5278            ["Save_Pac_2030", "z/games/savepac2030/game", "", "", "savepac203090x25Min.webp", "Desktop", "Landscape Action Platform Puzzle Retro SUO", "2023-11-23", 122, 70, 70, 70],
5279            ["Save_Pac_2040", "z/games/savepac2040/game", "", "", "savepac204090x25Min.webp", "Desktop", "Landscape Action Platform Puzzle Retro SUO", "2024-01-01", 123, 70, 70, 70],
5280            ["Knee_Doctor_Simulator", "z/games/kneedoctorsimulator/game", "", "", "kneedoctorsimulator360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs", "2025-04-02", 123, 70, 70, 70],
5281            ["Bone_Doctor_Simulator", "z/games/bonedoctorsimulator/game", "", "", "bonedoctorsimulator360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Job", "2025-11-19", 123, 70, 70, 70],
5282            //
5283            ["Twinshot", "z/games/twinshot/game", "", "", "twinshot360x100Min.webp", "Desktop", "Landscape Action 2Player Platform Retro Shooting", "2024-10-09", 124, 70, 70, 70], //not-good-on-touch-yet
5284            ["Twinshot_2", "z/games/twinshot2/game", "", "", "twinshot2360x100Min.webp", "Desktop", "Landscape Action 2Player Platform Retro Shooting", "2025-10-27", 124, 70, 70, 70], //crashed iphone
5285            ["Sky_Serpents", "z/games/skyserpents/game", "", "", "skyserpents180x50Min.webp", "Desktop", "Portrait Action Adventure Combat Retro", "2025-10-27", 124, 70, 70, 70], //softlocks-on-mobile-nov-2025
5286            ["Jack_Frost", "z/games/jackfrost/game", "", "", "jackfrost180x50Min.webp", "Desktop", "Landscape 2Player Action Platform Retro", "2025-10-27", 124, 70, 70, 70], //xmas
5287            ["Jellydad_Hero", "z/games/jellydadhero/game", "", "", "jellydadhero360x100Min.jpg", "Desktop", "Landscape Action Adventure Platform", "2023-08-08", 124, 70, 70, 70],
5288            //
5289            ["Real_Construction~Excavator_Simulator", "z/games/realconstructionexcavatorsimulator/game", "", "", "realconstructionexcavatorsimulator360x100Min.png", "Desktop", "Landscape 3D Jobs", "2023-07-27", 125, 70, 70, 70],
5290            ["Merge_Card", "z/games/mergecard/game", "", "", "mergecard360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Math Puzzle Strategy", "2024-06-01", 126, 4, 68, 1],
5291            ["Doge_Kiss", "z/games/dogekiss/game", "", "", "dogekiss360x100Min.webp", "Desktop i!t!PadOld i!t!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Portrait Ball Puzzle SUO", "2024-03-23", 127, 68, 68, 68],
5292            ["Papa's_Pizzeria", "z/games/papaspizzeria/game", "", "", "papaspizzeria360x100Min.webp", "Desktop", "Landscape Action Food Jobs Strategy SUOx", "2024-01-01", 128, 100, 100, 100],
5293            ["Papa's_Burgeria", "z/games/papasburgeria/game", "", "", "papasburgeria360x100Min.webp", "Desktop", "Landscape Action Food Jobs Strategy SUOx", "2025-08-30", 128, 100, 100, 100],
5294            ["Papa's_Taco_Mia", "z/games/papastacomia/game", "", "", "papastacomia360x100Min.webp", "Desktop", "Landscape Action Food Jobs Strategy SUOx", "2025-08-30", 128, 100, 100, 100],
5295            ["Papa's_Freezeria", "z/games/papasfreezeria/game", "", "", "papasfreezeria360x100Min.webp", "Desktop", "Landscape Action Food Jobs Strategy SUOx", "2025-08-30", 128, 100, 100, 100],
5296            ["Cactus_McCoy", "z/games/cactusmccoy/game", "", "", "cactusmccoy360x100Min.webp", "Desktop", "Landscape Action Platform SUOx", "2025-08-30", 128, 100, 100, 100],
5297            ["Car_Rush", "z/games/carrush/game", "", "", "carrush360x100Min.png", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!tc!ndroidHigh", "Landscape Action Motorsport", "2020-02-04", 129, 800, 800, 800], //android-control-issues
5298            ["18_Wheeler_Cargo~Simulator_2", "z/games/18wheelercargosimulator2/game", "", "", "18wheelercargosimulator2360x100Min.png", "Desktop", "Landscape 3D Action Jobs Motorsport", "2022-03-04", 130, 150, 150, 150],
5299            ["Cannon_Bolf", "z/games/cannonbolf/game", "", "", "cannonbolf360x100Min.webp", "Desktop", "Landscape 3D Action Ball Shooting", "2024-05-22", 132, 68, 68, 68],
5300            ["Extreme_Offroad_Cars_2", "z/games/extremeoffroadcars2/game", "", "", "extremeoffroadcars2360x100Min.png", "Desktop", "Landscape 3D Action Motorsport", "2022-03-11", 133, 11, 11, 11],
5301            ["Stick_Archery", "z/games/stickarchery/game", "", "", "stickarchery360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Combat Shooting NFS", "2022-07-19", 134, 150, 67, 36],
5302            ["Animals_Merge", "z/games/animalsmerge/game", "", "", "animalsmerge360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2024-09-30", 135, 24, 68, 3],
5303            ["Friv_Coloring", "z/games/frivcoloring/game", "", "", "frivcoloring360x100Min.webp", "Desktop", "Landscape Creative", "2024-06-15", 136, 68, 68, 68],
5304            ["Farafalla", "z/games/farafalla/game", "", "", "farafalla90x25Min.webp", "Desktop iPadOld iPadNew iPhone A!c!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Adventure Platform Retro", "2024-10-01", 66, 66, 66, 66], //GRP
5305            //
5306            //hop-dont-stop
5307            //
5308            ["Baby_Zara~Home_Cleaning", "z/games/babyzarahomecleaning/game", "", "", "babyzarahomecleaning360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs", "2025-02-26", 150, 30, 31, 150],
5309            ["Baby_Zara~Outdoor_Cleaning", "z/games/babyzaraoutdoorcleaning/game", "", "", "babyzaraoutdoorcleaning360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs", "2025-02-26", 151, 30, 31, 150],
5310            ["Block_Tower", "z/games/blocktower/game", "", "", "blocktower360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2025-02-26", 152, 150, 150, 150],
5311            ["Nerds_And_Sigmas~2_Player", "z/games/nerdsandsigmas/game", "", "", "nerdsandsigmas120x33Min.webp", "Desktop", "Landscape Action Adventure Combat 2Player Platform Puzzle Retro", "2025-01-05", 153, 150, 150, 150],
5312            ["Block_Puzzle", "z/games/blockpuzzle/game", "", "", "blockpuzzle360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle NFS!tp!", "2024-12-12", 156, 150, 150, 150],
5313            ["Wednesday~Light_Academia", "z/games/wednesdaylightacademia/game", "", "", "wednesdaylightacademia360x100Min.webp", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS SUO", "2025-01-08", 157, 150, 150, 150],
5314            ["Skip_Card_X", "z/games/skipcardx/game", "", "", "skipcardx360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Strategy NFS!tp!", "2024-12-06", 159, 39, 150, 9],
5315            ["Besties_Reunion_Party", "z/games/bestiesreunionparty/game", "", "", "bestiesreunionparty360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup SUO NFS", "2025-03-07", 161, 37, 31, 150],
5316            ["Blast_The_Bones", "z/games/blastthebones/game", "", "", "blastthebones360x100Min.webp", "Desktop", "Landscape Action Halloween Puzzle NFS", "2024-10-12", 163, 150, 150, 150],
5317            ["Ellie_Spa_And~Beauty_Salon", "z/games/elliesummerspaandbeautysalon/game", "", "", "elliesummerspaandbeautysalon360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Creative Dressup Jobs NFS", "2025-03-10", 164, 150, 150, 14],
5318            ["Painting_Tiles", "z/games/paintingtiles/game", "", "", "paintingtiles360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2024-09-29", 166, 68, 68, 32],
5319            ["Memory_Chess", "z/games/memorychess/game", "", "", "memorychess360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait 2Player Puzzle", "2024-09-14", 169, 150, 150, 150],
5320            ["Back_2_School~Makeover", "z/games/back2schoolmakeover/game", "", "", "back2schoolmakeover360x100Min.webp", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-08-20", 174, 68, 38, 68],
5321            ["Glamour~Beach_Life", "z/games/glamourbeachlife/game", "", "", "glamourbeachlife360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-08-03", 
5321176, 150, 20, 150],
5322            ["Starlet_Wedding~Prep", "z/games/starletweddingprep/game", "", "", "starletweddingprep360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-01-15", 177, 68, 20, 68],
5323            ["Starlet_Breakup_Drama", "z/games/starletbreakupdrama/game", "", "", "starletbreakupdrama360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup SUO NFS", "2024-09-01", 178, 68, 80, 68],
5324            ["Highschool_Mean_Girls_2", "z/games/highschoolmeangirls2/game", "", "", "highschoolmeangirls2360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-07-23", 179, 68, 30, 68],
5325            ["Melody's_Adventure", "z/games/melodysadventure/game", "", "", "melodysadventure360x100Min.webp", "Desktop i!c!PadOld i!t!PadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Action Adventure Platform", "2024-07-09", 182, 150, 150, 150], //ipad-controls-too-big-for-small-hands
5326            ["Melody's_Adventure_2", "z/games/melodysadventure2/game", "", "", "melodysadventure2360x100Min.webp", "Desktop", "Landscape Action Adventure Platform", "2026-07-22", 182, 150, 150, 150],
5327            ["Barbiemania", "z/games/barbiemania/game", "", "", "barbiemania360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup SUO NFS", "2024-07-18", 183, 150, 150, 150],
5328            ["Mahjong_Quest", "z/games/mahjongquest/game", "", "", "mahjongquest360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle NFS!p!", "2024-07-06", 184, 43, 24, 150],
5329            ["Super_Monkey~Adventure", "z/games/supermonkeyadventure/game", "", "", "supermonkeyadventure90x25Min.webp", "Desktop", "Landscape Adventure Platform Puzzle Retro", "2024-06-18", 186, 150, 150, 150], //awaiting iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh
5330            ["Dressup_Rewind", "z/games/dressuprewind/game", "", "", "dressuprewind360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-07-12", 188, 150, 150, 150],
5331            ["Triangle_Back_Home", "z/games/trianglebackhome/game", "", "", "trianglebackhome360x100Min.png", "Desktop", "Landscape Action Adventure Platform", "2024-05-15", 189, 150, 150, 150],
5332            ["V_And_N_Pizza_Cooking", "z/games/vandnpizzacooking/game", "", "", "vandnpizzacooking360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Food Jobs", "2024-05-15", 190, 150, 150, 150],
5333            ["Spin_Bowling", "z/games/spinbowling/game", "", "", "spinbowling360x100Min.webp", "Desktop", "Landscape Action Ball Puzzle", "2024-05-07", 191, 150, 150, 150],
5334            ["Emoji_Snakes", "z/games/emojisnakes/game", "", "", "emojisnakes360x100Min.png", "Desktop", "Landscape Action FGO", "2020-12-17", 197, 150, 150, 150], //not-good-on-touch
5335            //
5336            ["Find_Minime", "z/games/findminime/game", "", "", "findminime360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle NFS!p!", "2023-12-30", 199, 150, 150, 150],
5337            ["ASMR_Tattoo_Treatment", "z/games/asmrtattootreatment/game", "", "", "asmrtattootreatment360x100Min.webp", "Desktop i!t!PadOld i!t!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs NFS", "2026-02-23", 200, 150, 150, 150], //suspected crash on iOS //speak to dev
5338            ["ASMR_Stye_Treatment", "z/games/asmrstyetreatment/game", "", "", "asmrstyetreatment360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Jobs Puzzle NFS", "2024-04-11", 200, 150, 150, 150],
5339            ["ASMR_Nail_Treatment", "z/games/asmrnailtreatment/game", "", "", "asmrnailtreatment360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs NFS", "2025-04-01", 200, 150, 150, 150],
5340            ["ASMR_Beauty_Treatment", "z/games/asmrbeautytreatment/game", "", "", "asmrbeautytreatment360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs NFS", "2025-03-13", 201, 150, 150, 150],
5341            ["ASMR_Beauty_Treatment_2", "z/games/asmrbeautytreatment2/game", "", "", "asmrbeautytreatment2360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs NFS", "2025-03-23", 202, 150, 150, 150],
5342            ["ASMR_Beauty_Japanese_Spa", "z/games/asmrbeautyjapanesespa/game", "", "", "asmrbeautyjapanesespa360x100Min.webp", "Desktop i!t!PadOld i!t!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs NFS", "2025-11-19", 202, 150, 150, 150],  //su
5342spected crash on iOS //speak to dev
5343            ["ASMR_Beauty_Superstar", "z/games/asmrbeautysuperstar/game", "", "", "asmrbeautysuperstar360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs NFS", "2025-11-27", 202, 150, 150, 150],
5344            ["Pinball_Rush", "z/games/pinballrush/game", "", "", "pinballrush360x100Min.webp", "D!tp!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Action Ball", "2024-02-29", 202, 150, 150, 150],
5345            ["Warship", "z/games/warship/game", "", "", "warship360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Combat Puzzle Strategy", "2024-03-30", 205, 150, 150, 150],
5346            ["Toxic", "z/games/toxic/game", "", "", "toxic180x50Min.webp", "Desktop iPadOld iPadNew iPhone A!c!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Adventure Platform Retro SUO", "2024-10-12", 206, 150, 150, 150],
5347            //["Toxic_2", "z/games/toxic2/game", "", "", "toxic2180x50Min.webp", "Desktop", "Landscape Action Adventure Platform Retro SUO", "2024-10-12", 207, 150, 150, 150], //d:0.46 next-ruffle
5348            ["2248_Link", "z/games/2248link/game", "", "", "2248link360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Math Puzzle Strategy NFS!tp!", "2024-03-01", 212, 44, 150, 38],
5349            ["Insta_Makeup_Bride", "z/games/instamakeupbride/game", "", "", "instamakeupbride360x100Min.webp", "Desktop i!c!PadOld i!c!PadNew i!c!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-03-16", 214, 150, 150, 150],
5350            //
5351            ["I_Wanna_Win", "z/games/iwannawin/game", "", "", "iwannawin360x100Min.webp", "Desktop iPadOld iPadNew iPhone A!c!ndroidLow AndroidMid AndroidHigh", "Landscape Action Puzzle", "2024-02-24", 215, 70, 70, 70],
5352            ["Frizzle_Fraz~Deluxe", "z/games/frizzlefrazdeluxe/game", "", "", "frizzlefrazdeluxe360x100Min.png", "Desktop", "Landscape Action Adventure Ball Platform", "2022-09-29", 216, 70, 70, 70],
5353            ["First_Day~At_School", "z/games/firstdayatschool/game", "", "", "firstdayatschool360x100Min.png", "Desktop i!t!PadNew iPhone A!c!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Adventure Puzzle", "2021-01-15", 219, 70, 70, 70],
5354            ["The_Milk_Quest", "z/games/themilkquest/game", "", "", "themilkquest360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone A!c!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Adventure Puzzle", "2021-01-14", 220, 70, 70, 70],
5355            ["Neil_The_Nail", "z/games/neilthenail/game", "", "", "neilthenail360x100Min.jpg", "Desktop iPadOld iPadNew iPhone A!c!ndroidLow AndroidMid AndroidHigh", "Landscape Adventure Puzzle", "2021-01-15", 221, 70, 70, 70],
5356            ["Kendal_7_Days_7_Styles", "z/games/kendel7days7styles/game", "", "", "kendel7days7styles360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-03-23", 222, 70, 48, 70],
5357            ["Red_Ball_Hero", "z/games/redballhero/game", "", "", "redballhero360x100Min.png", "Desktop", "Landscape Action Adventure Ball Platform Puzzle", "2021-02-03", 224, 11, 11, 11],
5358            ["Color_Strings", "z/games/colorstrings/game", "", "", "colorstrings360x100Min.png", "Desktop iPadOld i!t!PadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2021-06-17", 225, 57, 800, 52],
5359            ["Tap_Supermarket", "z/games/tapsupermarket/game", "", "", "tapsupermarket360x100Min.png", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Food Jobs Strategy", "2021-01-07", 228, 60, 800, 62],
5360            //
5361            ["Tangram", "z/games/tangram/game", "", "", "tangram360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle NFS!p!", "2023-09-02", 232, 70, 70, 16],
5362            ["Ludo", "z/games/ludo/game", "", "", "ludo360x100Min.webp", "Desktop", "Landscape 2Player", "2023-12-30", 234, 70, 70, 70],
5363            ["Dirk Valentine", "z/games/dirkvalentine/game", "", "", "dirkvalentine360x100Min.png", "Desktop", "Landscape Action Adventure Combat Platform", "2025-11-12", 234, 234, 234, 234],
5364            ["Shape_Shifter", "z/games/shapeshifter/game", "", "", "shapeshifter360x100Min.png", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Platform Puzzle", "2025-11-12", 234, 234, 234, 234],
5365            //["Shape_Shifter_2", "z/games/shapeshifter2/game", "", "", "shapeshifter2360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Platform Puzzle", "2025-11-12", 234, 234, 234, 234], //cannot-pass-level-9-aug-2026 //next-ruffle
5366            ["Cover_Orange", "z/games/coverorange/game", "", "", "coverorange360x100Min.webp", "Desktop iPadOld iPadNew i!t!Phone A!c!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Ball Puzzle", "2025-11-12", 234, 234, 234, 234],
5367            ["Happy_Stacking", "z/games/happystacking/game", "", "", "happystacking360x100Min.webp", "Desktop", "Portrait Puzzle", "2025-11-02", 234, 234, 234, 234],
5368            ["Throwa", "z/games/throwa/game", "", "", "throwa120x33Min.webp", "Desktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Adventure Platform Puzzle Retro", "2024-01-11", 235, 70, 70, 70],
5369            ["Zombie_Hunter~Survival", "z/games/zombiehuntersurvival/game", "", "", "zombiehuntersurvival360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Action Combat Halloween Shooting NFS", "2023-10-24", 236, 7, 70, 7], //d:82683-0.59
5370            ["Get_The~Word", "z/games/gettheword/game", "", "", "gettheword360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle Word", "2023-08-26", 238, 70, 70, 70],
5371            ["Connect_The_Bubbles", "z/games/connectthebubbles/game", "", "", "connectthebubbles360x100Min.png", "Desktop iPadOld i!t!PadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle NFS", "2023-07-29", 239, 40, 70, 20],
5372            ["Minigolf_Master", "z/games/minigolfmaster/game", "", "", "minigolfmaster360x100Min.png", "Desktop i!t!PadOld i!t!PadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Ball Sport", "2023-07-29", 240, 70, 70, 70],
5373            ["Pool_8_Ball_Mania", "z/games/pool8ballmania/game", "", "", "pool8ballmania360x100Min.webp", "Desktop i!t!PadOld i!c!PadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Ball 2Player", "2023-07-27", 241, 8, 70, 70],
5374            //
5375            ["Moto_X3M_1~Origins", "z/games/motox3morigins/game", "", "", "motox3morigins360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Motorsport", "2023-10-10", 243, 70, 70, 70],
5376            ["Moto_X3M_1~Origins_Hacked", "z/games/motox3moriginshacked/game", "", "", "motox3moriginshacked360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Motorsport SUO", "2025-07-27", 243, 70, 70, 70],
5377            ["Moto_X3M_2~Origins", "z/games/motox3m2origins/game", "", "", "motox3m2origins360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Motorsport", "2023-10-10", 244, 70, 70, 70],
5378            ["Moto_X3M_3~Origins", "z/games/motox3m3origins/game", "", "", "motox3m3origins360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Motorsport", "2023-10-10", 245, 70, 70, 70], //prev-version-had-occasional-issues-with-end-of-level
5379            //
5380            ["Cruiser", "z/games/cruiser/game", "", "", "cruiser360x100Min.png", "Desktop", "Landscape Action Combat Shooting Strategy", "2023-08-08", 247, 70, 70, 70],
5381            ["Sand_Castle", "z/games/sandcastle/game", "", "", "sandcastle360x100Min.png", "Desktop", "Landscape Action Shooting Strategy", "2023-08-08", 249, 70, 70, 70],
5382            ["Ludo_Legend", "z/games/ludolegend/game", "", "", "ludolegend360x100Min.png", "Desktop i!t!PadOld i!t!PadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait 2Player NFS!tp!", "2023-06-17", 251, 30, 70, 8],
5383            ["Boxing_Stars", "z/games/boxingstars/game", "", "", "boxingstars360x100Min.png", "Desktop T!t!ouch", "Landscape Action Combat Sport NFS", "2023-05-26", 254, 70, 70, 70],
5384            ["Tower_Defense_Clash", "z/games/towerdefenseclash/game", "", "", "towerdefenseclash360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Strategy", "2023-05-24", 255, 70, 70, 70],
5385            ["Anika's_Odyssey", "z/games/anikasodyssey/game", "", "", "anikasodyssey360x100Min.png", "Desktop", "Landscape Adventure Puzzle", "2023-07-25", 257, 70, 70, 70],
5386            ["Nelly", "z/games/nelly/game", "", "", "nelly360x100Min.png", "Desktop", "Landscape Adventure Halloween Platform Puzzle NFS", "2023-07-25", 259, 70, 70, 70],
5387            ["Home_Sheep_Home", "z/games/homesheephome/game", "", "", "homesheephome360x100Min.png", "Desktop", "Landscape Action Adventure Platform Puzzle FGO", "2023-07-25", 260, 70, 70, 70],
5388            ["Home_Sheep_Home_2", "z/games/homesheephome2/game", "", "", "homesheephome2360x100Min.webp", "Desktop", "Landscape Action Adventure Platform Puzzle FGO", "2025-06-25", 260, 70, 70, 70],
5389            ["Jelly_Go", "z/games/jellygo/game", "", "", "jellygo360x100Min.jpg", "Desktop", "Landscape Puzzle Strategy NFS", "2023-03-03", 262, 70, 70, 70], //poor-perf-sch
5390            ["Defend_Your_Nuts", "z/games/defendyournuts/game", "", "", "defendyournuts360x100Min.webp", "Desktop", "Landscape Action Shooting Strategy NFS", "2024-02-24", 70, 70, 70, 70],
5391            ["Lost_Glider", "z/games/lostglider/game", "", "", "lostglider360x100Min.webp", "Desktop", "Landscape Action Adventure Platform", "2024-07-12", 70, 70, 70, 70],
5392            ["Tiny_Crash~Fighters", "z/games/tinycrashfighters/game", "", "", "tinycrashfighters360x100Min.png", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Combat Creative Puzzle Strategy", "2023-03-31", 70, 70, 70, 70], //huge-game-loading-on-touch //popularity
5393            //
5394            ["Mad_Arrow", "z/games/madarrow/game", "", "", "madarrow360x100Min.webp", "Desktop", "Landscape Action Combat Strategy", "2026-08-18", 70, 70, 70, 70],
5395            ["Rogue_Soul", "z/games/roguesoul/game", "", "", "roguesoul360x100Min.webp", "Desktop", "Landscape Action Adventure Platform NFS", "2026-08-18", 70, 70, 70, 70],
5396            ["Football_Kicks", "z/games/footballkicks/game", "", "", "footballkicks360x100Min.webp", "Desktop", "Landscape Action Ball Sport", "2026-08-18", 70, 70, 70, 70],
5397            //["Comic_Book_Cody", "z/games/comicbookcody/game", "", "", "comicbookcody360x100Min.webp", "Desktop", "Landscape Action Adventure Platform Retro", "2026-08-18", 70, 70, 70, 70], //d:0.35 next-ruffle
5398            ["Dynaboy", "z/games/dynaboy/game", "", "", "dynaboy120x33Min.webp", "Desktop", "Landscape Action Adventure Platform Retro", "2026-08-18", 70, 70, 70, 70],
5399            ["Mega_Miner", "z/games/megaminer/game", "", "", "megaminer360x100Min.webp", "Desktop", "Landscape Adventure Jobs Strategy", "2026-08-18", 70, 70, 70, 70],
5400            ["Dino_Shift", "z/games/dinoshift/game", "", "", "dinoshift360x100Min.webp", "Desktop", "Landscape Action Adventure Platform", "2026-08-18", 70, 70, 70, 70],
5401            ["Radioactive_Teddybear~Zombies", "z/games/radioactiveteddybrearzombies/game", "", "", "radioactiveteddybrearzombies360x100Min.webp", "Desktop", "Landscape Action Adventure Platform Shooting NFS", "2026-08-18", 70, 70, 70, 70],
5402            //
5403            ["Mike_And_Mia_First_Day", "z/games/mikeandmiafirstdayatschool/game", "", "", "mikeandmiafirstdayatschool360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup", "2023-05-18", 265, 75, 75, 75],
5404            ["BFF_Math_Class", "z/games/bffmathclass/game", "", "", "bffmathclass360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Math Puzzle", "2024-01-06", 267, 76, 76, 76], //GRP
5405            ["Fish_Love", "z/games/fishlove/game", "", "", "fishlove360x100Min.png", "Desktop i!c!PadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2022-07-04", 268, 49, 150, 12],
5406            ["Strikeforce_Kitty", "z/games/strikeforcekitty/game", "", "", "strikeforcekitty360x100Min.png", "Desktop", "Landscape Action Adventure Combat Platform", "2021-02-11", 269, 999, 999, 999], //GRP
5407            ["Strikeforce_Kitty_2", "z/games/strikeforcekitty2/game", "", "", "strikeforcekitty2360x100Min.png", "Desktop", "Landscape Action Adventure Combat Platform", "2023-08-08", 269, 999, 999, 999], //GRP
5408            ["Strikeforce_Kitty~Last_Stand", "z/games/strikeforcekittylaststand/game", "", "", "strikeforcekittylaststand360x100Min.png", "Desktop iPadOld iPadNew iPhone A!c!ndroidLow AndroidMid AndroidHigh", "Landscape Action Combat Strategy", "2021-02-12", 270, 999, 999, 999], //GRP
5409            ["Summer_Fashion~Makeover", "z/games/summerfashionmakeover/game", "", "", "summerfashionmakeover360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2022-09-10", 271, 100, 100, 100],
5410            ["Doc_Darling~Bone_Surgery", "z/games/docdarlingbonesurgery/game", "", "", "docdarlingbonesurgery360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Job", "2023-01-23", 272, 101, 101, 101],
5411            ["1930", "z/games/1930/game", "", "", "193090x25Min.png", "Desktop", "Landscape Platform Puzzle Retro", "2022-09-05", 273, 100, 100, 100],
5412            ["Erase_One_Part", "z/games/eraseonepart/game", "", "", "eraseonepart360x100Min.png", "Desktop", "Portrait SUO", "2023-02-04", 274, 100, 100, 100], //very-large-game-desktop-only
5413            ["Zombotron", "z/games/zombotron/game", "", "", "zombotron360x100Min.webp", "Desktop", "Landscape Action Adventure Combat Platform Shooting Halloween NFS", "2021-01-01", 275, 11, 11, 11], //GRP
5414            ["Zombotron_2", "z/games/zombotron2/game", "", "", "zombotron2360x100Min.webp", "Desktop", "Landscape Action Adventure Combat Platform Shooting Halloween NFS", "2021-01-28", 276, 11, 11, 11], //GRP
5415            ["Zombotron_2_Time_Machine", "z/games/zombotron2timemachine/game", "", "", "zombotron2timemachine360x100Min.webp", "Desktop", "Landscape Action Adventure Combat Platform Shooting Halloween NFS", "2021-02-03", 277, 11, 11, 11], //GRP
5416            ["Baseball", "z/games/baseball/game", "", "", "baseball360x100Min.jpg", "Desktop", "Landscape Action Ball Sport", "2020-09-25", 278, 11, 11, 11],
5417            ["Funny_Cooking_Camp", "z/games/funnycookingcamp/game", "", "", "funnycookingcamp360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Food", "2022-10-18", 279, 100, 100, 100],
5418            ["3D_Arena_Racing", "z/games/3darenaracing/game", "", "", "3darenaracing360x100Min.png", "Desktop", "Landscape 3D 2Player Action Motorsport", "2021-12-07", 280, 150, 150, 150],
5419            ["Ricochet_Arrow", "z/games/ricochetarrow/game", "", "", "ricochetarrow360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Shooting NFS", "2022-12-31", 281, 100, 100, 100],
5420            ["Soldier_Legend", "z/games/soldierlegend/game", "", "", "soldierlegend360x100Min.png", "Desktop", "Landscape Action Shooting NFS", "2017-06-26", 282, 51, 51, 51],
5421            ["Offroad_Rain~Cargo_Simulator", "z/games/offroadraincargosimulator/game", "", "", "offroadraincargosimulator360x100Min.png", "Desktop", "Landscape 3D Action Motorsport", "2021-12-24", 285, 150, 150, 150],
5422            ["Spill", "z/games/spill/game", "", "", "spill360x100Min.png", "D!p!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Action Puzzle", "2023-01-16", 287, 100, 100, 100],
5423            ["Sleep_Walk", "z/games/sleepwalk/game", "", "", "sleepwalk360x100Min.png", "Desktop T!t!ouch", "Landscape Adventure Puzzle", "2021-01-15", 288, 100, 1
542300, 100],
5424            ["Tractor_Mania", "z/games/tractormania/game", "", "", "tractormania360x100Min.png", "Desktop T!t!ouch", "Landscape Action Jobs Motorsport", "2022-12-31", 289, 100, 70, 100],
5425            //
5426            ["Sara's_Red~Velvet_Cake", "z/games/sarasredvelvetcake/game", "", "", "sarasredvelvetcake360x100Min.png", "Desktop", "Landscape Food Jobs Flash SUOx", "2023-09-10", 290, 101, 101, 101], //GRP
5427            //
5428            ["Jim_Loves_Mary", "z/games/jimlovesmary/game", "", "", "jimlovesmary360x100Min.png", "Desktop", "Landscape Action Adventure 2Player Platform Puzzle", "2023-07-07", 294, 100, 100, 100],
5429            ["Jim_Loves_Mary_2", "z/games/jimlovesmary2/game", "", "", "jimlovesmary2360x100Min.png", "Desktop", "Landscape Action Adventure 2Player Platform Puzzle", "2023-07-18", 295, 100, 100, 100],
5430            ["Cool_Cats_Insta_Fashion", "z/games/coolcatsinstafashion/game", "", "", "coolcatsinstafashion360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup SUO", "2022-10-07", 299, 100, 100, 100],
5431            ["Checkpoint", "z/games/checkpoint/game", "", "", "checkpoint360x100Min.png", "Desktop t!t!ouch", "Landscape Action Platform SUOx", "2023-04-22", 300, 100, 100, 100],
5432            ["Footchinko", "z/games/footchinko/game", "", "", "footchinko-min.jpg", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Sport Action", "2017-06-26", 301, 30, 78, 60],
5433            ["Funny_Bone~Surgery", "z/games/funnybonesurgery/game", "", "", "funnybonesurgery360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs Puzzle NFS", "2020-12-01", 305, 720, 13, 180], //GRP
5434            ["Funny_Eye_Surgery", "z/games/funnyeyesurgery/game", "", "", "funnyeyesurgery360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs NFS", "2020-05-20", 306, 720, 950, 180], //GRP
5435            ["Funny_Dentist_Surgery", "z/games/funnydentistsurgery/game", "", "", "funnydentistsurgery360x100Min.jpg", "Desktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Creative Dressup Jobs NFS", "2019-12-13", 307, 720, 950, 180], //GRP //android-unexplained //check with dev#
5436            ["Funny_Throat~Surgery", "z/games/funnythroatsurgery/game", "", "", "funnythroatsurgery360x100Min.png", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Creative Dressup Jobs NFS", "2019-08-16", 308, 720, 950, 71], //GRP //details-may-be-too-small
5437            ["Funny_Throat~Surgery_2", "z/games/funnythroatsurgery2/game", "", "", "funnythroatsurgery2360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Dressup Jobs NFS", "2022-02-11", 309, 720, 950, 72], //GRP //details-may-be-too-small
5438            ["Cascade_Chaos", "z/games/cascadechaos/game", "", "", "cascadechaos360x100Min.png", "Desktop i!c!PadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Ball Puzzle", "2022-08-29", 310, 100, 100, 100],
5439            ["Slosh", "z/games/slosh/game", "", "", "slosh360x100Min.png", "Desktop i!c!PadOld i!t!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2022-08-21", 311, 100, 100, 100],
5440            ["Swipe_The_Pin", "z/games/swipethepin/game", "", "", "swipethepin360x100Min.png", "Desktop i!c!PadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2022-07-26", 313, 100, 100, 39],
5441            ["Protect_Emojis", "z/games/protectemojis/game", "", "", "protectemojis360x100Min.png", "D!p!esktop i!c!PadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2022-07-21", 314, 100, 65, 16], //!p
5442            ["Save_Us", "z/games/saveus/game", "", "", "saveus90x25Min.png", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Platform Puzzle Retro", "2022-07-21", 315, 100, 100, 100],
5443            ["Connect_Four", "z/games/connectfour/game", "", "", "connectfour360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait 2Player Puzzle", "2022-08-03", 316, 100, 100, 100], //lcs-a-h-0.44
5444            ["Mini_Scientist", "z/games/miniscientist/game", "", "", "miniscientist360x100Min.png", "Desktop T!t!ouch", "Landscape Puzzle", "2021-03-27", 317, 100, 100, 100],
5445            //
5446            ["Savage_Pursuit", "z/games/savagepursuit/game", "", "", "savagepursuit360x100Min.png", "Desktop", "Landscape Action Adventure Platform NFS SUOx", "2024-01-01", 318, 100, 100, 100],
5447            ["Monster_High_Rock_Band", "z/games/monsterhighrockband/game", "", "", "monsterhighrockband360x100Min.webp", "Desktop", "Landscape Creative Dressup Halloween NFS SUOx", "2024-01-01", 319, 100, 100, 100],
5448            ["Pacxon", "z/games/pacxon/game", "", "", "pacxon360x100Min.png", "Desktop iPadOld iPadNew iPhone A!c!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Retro SUO", "2024-03-21", 320, 100, 100, 100],
5449            ["Pacxon_Deluxe", "z/games/pacxondeluxe/game", "", "", "pacxondeluxe360x100Min.png", "Desktop", "Landscape Action Retro", "2025-11-02", 320, 100, 100, 100],
5450            ["Miragine_War", "z/games/miraginewar/game", "", "", "miraginewar360x100Min.png", "Desktop iPadOld iPadNew", "Landscape 2Player Action Combat Strategy", "2023-03-03", 323, 100, 100, 100],
5451            ["Clash_Of_Orcs", "z/games/clashoforcs/game", "", "", "clashoforcs360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Combat Strategy NFS", "2020-10-06", 325, 78, 15, 66],
5452            ["Truck Loader 4", "z/games/truckloader4/game", "", "", "truckloader4360x100Min.png", "Desktop", "Landscape Action Platform Puzzle", "2020-04-27", 326, 999, 999, 999], //GRP
5453            ["Truck Loader 5", "z/games/truckloader5/game", "", "", "truckloader5360x100Min.png", "Desktop", "Landscape Action Platform Puzzle", "2020-06-10", 327, 999, 999, 999], //GRP
5454            ["Renegade_Frog", "z/games/renegadefrog/game", "", "", "renegadefrog120x33Min.png", "D!p!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Platform Retro", "2021-07-27", 328, 30, 66, 191], //touch-popular
5455            ["Shatterbot", "z/games/shatterbot/game", "", "", "shatterbot360x100Min.png", "Desktop", "Landscape Action Combat Platform Shooting", "2021-02-12", 332, 999, 999, 999],
5456            ["Yummy_Pancake_Factory", "z/games/yummypancakefactory/game", "", "", "yummypancakefactory360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Food Jobs", "2023-07-11", 336, 153, 153, 153], //GRP
5457            ["Yummy_Donut_Factory", "z/games/yummydonutfactory/game", "", "", "yummydonutfactory360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Food Jobs", "2022-10-18", 337, 153, 153, 153], //GRP
5458            ["Bridezilla_Wedding~Makeover", "z/games/bridezillaweddingmakeover/game", "", "", "bridezillaweddingmakeover360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup NFS", "2020-04-20", 338, 36, 78, 67],
5459            ["Epic_Food_Duel", "z/games/epicfoodduel/game", "", "", "epicfoodduel360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Combat Food 2Player", "2022-02-11", 339, 150, 150, 150],
5460            ["Fortride_Open_World", "z/games/fortrideopenworld/game", "", "", "fortrideopenworld360x100Min.png", "Desktop", "Landscape 3D Action Creative Motorsport", "2021-12-14", 340, 150, 150, 150],
5461            ["Happy_Cups", "z/games/happycups/game", "", "", "happycups360x100Min.png", "Desktop i!c!PadOld i!t!PadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle SUO", "2022-07-04", 341, 150, 150, 51],
5462            ["Scary_Scavenger~Hunt", "z/games/scaryscavengerhunt/game", "", "", "scaryscavengerhunt360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Adventure Puzzle Halloween Archivex", "2021-05-03", 800, 999, 999, 999],
5463            ["Scary_Scavenger~Hunt_2", "z/games/scaryscavengerhunt2/game", "", "", "scaryscavengerhunt2360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Adventure Puzzle Halloween Archivex", "2021-05-02", 800, 999, 999, 999],
5464            ["Gummy_Blocks", "z/games/gummyblocks/game", "", "", "gummyblocks360x100Min.png", "D!p!esktop iPadOld i!t!PadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2021-03-26", 800, 56, 800, 16],
5465            ["Fruit_Adventure", "z/games/fruitadventure/game", "", "", "fruitadventure120x33Min.png", "Desktop", "Landscape Action Adventure Platform Retro", "2021-03-08", 800, 800, 800, 800], //likely too small for phones / poor touch perf
5466            ["Extreme_Offroad~Cars_3_Cargo", "z/games/extremeoffroadcars3cargo/game", "", "", "extremeoffroadcars3cargo360x100Min.png", "Desktop", "Landscape 3D Action Motorsport", "2023-11-09", 800, 800, 800, 800],
5467            ["Eggy Car", "z/games/eggycar/game", "", "", "eggycar360x100Min.png", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow AndroidMid AndroidHigh", "Landscape Action Motorsport", "2020-12-31", 800, 800, 25, 57],
5468            ["Clash~Of_Tanks", "z/games/clashoftanks/game", "", "", "clashoftanks360x100Min.png", "Desktop i!c!PadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Action Combat Shooting Strategy NFS", "2020-10-13", 800, 800, 800, 800],
5469            ["Clash Of Armour", "z/games/clashofarmour/game", "", "", "clashofarmour360x100Min.png", "Desktop i!c!PadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Combat Shooting Strategy NFS", "2020-11-05", 800, 800, 800, 800],
5470            ["Truck_Line", "z/games/truckline/game", "", "", "truckline360x100Min.png", "Desktop t!t!ouch", "Landscape Motorsport Puzzle", "2020-08-25", 1320, 810, 810, 810],
5471            ["Icy_Purplehead~Superslide", "z/games/icypurpleheadsuperslide/game", "", "", "icypurpleheadsuperslide360x100Min.png", "D!p!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Platform Puzzle", "2020-05-20", 1380, 57, 22, 55], //GRP //lcs-a!t!ndroidLow  //blanked-sw.js
5472            ["Snakes and Ladders", "z/games/snakesandladders/game", "", "", "snakesandladders360x100Min.png", "Desktop", "Landscape 2Player", "2020-02-03", 1660, 211, 211, 211],
5473            ["Green_Mission", "z/games/greenmission/game", "", "", "greenmission360x100Min.png", "D!p!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Adventure Platform Puzzle", "2020-02-03", 1670, 2, 67, 50],
5474            ["Penalty Champ", "z/games/penaltychamp/game", "", "", "penaltychamp360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Sport Action", "2017-11-03", 1740, 54, 64, 33],
5475            ["Spin_Soccer", "z/games/spinsoccer/game", "", "", "spinsoccer360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Ball Platform Puzzle Sport", "2020-02-03", 1770, 198, 191, 191],
5476            ["Ball In The Hole", "z/games/ballinthehole/game", "", "", "ballinthehole360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Shooting", "2020-04-15", 1820, 300, 60, 251],
5477            ["Battleships", "z/games/battleships/game", "", "", "battleships360x100Min.png", "Desktop i!c!PadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle Strategy", "2019-08-25", 1990, 430, 21, 53],
5478            ["Eco_Ego", "z/games/ecoego/game", "", "", "ecoego360x100Min.png", "Desktop", "Landscape Jobs Puzzle Archivex", "2020-09-25", 1990, 999, 999, 999],
5479            ["Pool Club", "z/games/poolclub/game", "", "", "poolclub360x100Min.jpg", "Desktop T!tp!ouch", "Landscape Ball Sport", "2017-06-26", 2320, 880, 870, 112],
5480            ["ATV_Trial_Racing", "z/games/atvtrialracing/game", "", "", "atvtrialracing360x100Min.png", "Desktop", "Landscape 3D Action Motorsport 2Player", "2023-06-15", 3000, 3000, 3000, 3000],
5481            ["Parking_Mania", "z/games/parkingmania/game", "", "", "parkingmania360x100Min.webp", "Desktop", "Landscape Motorsport Puzzle NFS!tp!", "2024-02-24", 3000, 3000, 3000, 3000],
5482            ["Friv_Orbs_Experimental", "z/games/frivorbs/game", "", "", "frivorbs360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Ball Strategy", "2026-03-20", 3000, 3000, 3000, 3000],
5483            ["Headless_Zombie", "z/games/headlesszombie/game", "", "", "headlesszombie360x100Min.png", "Desktop", "Landscape Halloween Platform Puzzle FGO", "2023-07-25", 70, 70, 70, 70], //0.47 prev-ruffle
5484            ["Headless_Zombie_2", "z/games/headlesszombie2/game", "", "", "headlesszombie2360x100Min.png", "Desktop", "Landscape Halloween Platform Puzzle FGO", "2023-07-25", 70, 70, 70, 70], //0.45 prev-ruffle
5485            //desktop removed
5486            ["Ragdoll_Rise", "z/games/ragdollrise/game", "", "", "ragdollrise360x100Min.webp", "D!t!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2024-03-06", 5000, 5000, 5000, 5000],
5487            ["Draw_Parking", "z/games/drawparking/game", "", "", "drawparking360x100Min.png", "D!t!esktop iPadOld i!t!PadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Motorsport Puzzle", "2021-05-07", 5000, 48, 5000, 10],
5488            ["Robo_Hero~Red_Zone", "z/games/roboheroredzone/game", "", "", "roboheroredzone360x100Min.png", "D!tp!esktop iPadOld i!t!PadNew i!tp!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Shooting NFS", "2020-03-31", 5000, 5000, 5000, 5000],
5489            ["Robo_Hero~Green_Zone", "z/games/roboherogreenzone/game", "", "", "roboherogreenzone360x100Min.png", "D!tp!esktop iPadOld i!t!PadNew i!tp!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Shooting NFS", "2020-03-31", 5000, 5000, 5000, 5000],
5490            ["Robo_Hero~Blue_Zone", "z/games/roboherobluezone/game", "", "", "roboherobluezone360x100Min.png", "D!tp!esktop iPadOld i!t!PadNew i!tp!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Shooting NFS", "2020-04-15", 5000, 5000, 5000, 5000],
5491            ["Rope_Master", "z/games/ropemaster/game", "", "", "ropemaster360x100Min.png", "D!t!esktop i!c!PadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2021-04-23", 5000, 5000, 5000, 5000],
5492            ["Vixy's Sweet Haircuts", "z/games/vixyssweetrealhaircuts
5492/game", "", "", "vixyssweetrealhaircuts360x100Min.jpg", "D!tp!esktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup", "2019-08-25", 5000, 5000, 5000, 5000],
5493            ["Rabbit Samurai", "z/games/rabbitsamurai/game", "", "", "rabbitsamurai360x100Min.png", "D!p!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Action Adventure Platform", "2020-02-03", 5000, 5000, 5000, 5000],
5494            ["Hill Climber", "z/games/hillclimber/game", "", "", "hillclimber360x100Min.png", "D!t!esktop iPadOld iPadNew i!t!Phone A!t!ndroidLow AndroidMid AndroidHigh", "Landscape Action Motorsport", "2020-10-13", 5000, 5000, 5000, 5000], //better-on-touch
5495            ["Basketball_Line", "z/games/basketballline/game", "", "", "basketballline360x100Min.png", "D!t!esktop iPadOld iPadNew iPhone A!t!ndroidLow AndroidMid AndroidHigh", "Portrait Action Creative", "2019-12-05", 5000, 53, 5000, 95], //popular
5496            ["Penalty Superstar", "z/games/penaltysuperstar/game", "", "", "penaltysuperstar360x100Min.png", "D!t!esktop i!tp!PadOld i!t!PadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Action Ball Sport", "2020-04-20", 5000, 5000, 5000, 5000], //ok-on-androidMid
5497            ["Merge_Cakes", "z/games/mergecakes/game", "", "", "mergecakes360x100Min.png", "D!tp!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Food Strategy", "2020-05-27", 5000, 35, 1, 17],
5498            ["Doctor_Teeth", "z/games/doctorteeth/game", "", "", "doctorteeth360x100Min.png", "D!p!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Jobs", "2020-02-03", 2420, 32, 165, 22],
5499            ["Seasonland", "z/games/seasonland/game", "", "", "seasonland120x33Min.png", "D!t!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Platform Retro", "2021-03-03", 5000, 58, 5000, 5000], //good on touch
5500            ["Right_Shot", "z/games/rightshot/game", "", "", "rightshot360x100Min.png", "D!t!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Ball Puzzle Shooting", "2021-02-08", 5000, 5000, 5000, 5000], //d:0.494
5501            ["Milk_For_Cat", "z/games/milkforcat/game", "", "", "milkforcat360x100Min.png", "D!tp!esktop i!t!PadOld i!t!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Portrait Action Food Puzzle", "2022-01-02", 5000, 5000, 5000, 5000],
5502            ["Furious_Road", "z/games/furiousroad/game", "", "", "furiousroad360x100Min.png", "D!t!esktop i!t!PadOld i!t!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Portrait Action Motorsport Shooting", "2023-04-15", 5000, 5000, 5000, 5000],
5503            ["Rope_Dude", "z/games/ropedude/game", "", "", "ropedude360x100Min.png", "D!t!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Action Puzzle NFS", "2022-12-31", 5000, 5000, 5000, 5000], //d:0.49
5504            ["Garden_Match_Saga", "z/games/gardenmatchsaga/game", "", "", "gardenmatchsaga360x100Min.png", "D!d!esktop i!tp!PadOld i!t!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle Strategy", "2023-04-12", 5000, 5000, 5000, 5000],
5505            ["Road_Madness", "z/games/roadmadness/game", "", "", "roadmadness360x100Min.webp", "D!tp!esktop i!t!PadOld i!t!PadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Action Motorsport Shooting", "2023-11-23", 5000, 64, 5000, 5000],
5506            ["Empire_Defender", "z/games/empiredefender/game", "", "", "empiredefender360x100Min.png", "D!tp!esktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Combat Shooting Strategy NFS", "2020-11-24", 5000, 5000, 5000, 5000],
5507            ["Popcorn_Master", "z/games/popcornmaster/game", "", "", "popcornmaster360x100Min.png", "D!pt!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Food Puzzle", "2022-01-21", 5000, 5000, 5000, 5000],
5508            ["Social_Media~Nightlife_Fashion", "z/games/socialmedianightlifefashion/game", "", "", "socialmedianightlifefashion360x100Min.png", "D!pt!esktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2022-11-01", 5000, 5000, 5000, 5000],
5509            ["Avoid_Missiles", "z/games/avoidmissiles/game", "", "", "avoidmissiles360x100Min.png", "D!tp!esktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid AndroidHigh", "Landscape Action Shooting", "2023-04-30", 5000, 5000, 5000, 5000],
5510            ["Parking_Line", "z/games/parkingline/game", "", "", "parkingline360x100Min.webp", "D!t!esktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Motorsport Puzzle", "2024-02-05", 5000, 5000, 7, 5000], //ipad-only
5511            ["Jelly_Jumper", "z/games/jellyjumper/game", "", "", "jellyjumper360x100Min.webp", "D!t!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Platform", "2025-12-31", 5000, 5000, 5000, 5000],
5512            ["Piggy_Quest", "z/games/piggyquest/game", "", "", "piggyquest90x25Min.webp", "D!t!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Adventure Food Jobs Puzzle Retro RPG Strategy", "2026-04-20", 5000, 5000, 5000, 5000],
5513            ["Robot_Police~Iron_Panther", "z/games/robotpoliceironpanther/game", "", "", "robotpoliceironpanther360x100Min.png", "D!p!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Combat Strategy NFS", "2019-08-16", 5000, 5000, 5000, 5000], //GRP
5514            ["Robot_Police~Titanium_Panther", "z/games/robotpolicetitaniumpanther/game", "", "", "robotpolicetitaniumpanther360x100Min.png", "D!p!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Combat Strategy NFS", "2019-07-16", 5000, 5000, 5000, 5000], //GRP
5515            ["Primo's_Pizza", "z/games/primospizza/game", "", "", "primospizza360x100Min.png", "D!p!esktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Food Jobs", "2023-01-15", 5000, 5000, 5000, 5000],
5516            ["Stickman_Brawler", "z/games/stickmanbrawler/game", "", "", "stickmanbrawler360x100Min.webp", "D!t!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape 3D Action Combat NFS", "2025-09-29", 5000, 5000, 5000, 5000],
5517            ["Cycle_Sprint", "z/games/cyclesprint/game", "", "", "cyclesprint360x100Min.png", "D!t!esktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Sport", "2022-06-16", 5000, 5000, 5000, 5000],
5518            ["Farmer_Pedro", "z/games/farmerpedro/game", "", "", "farmerpedro360x100Min.webp", "D!t!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait 3D Food Jobs", "2025-08-23", 5000, 5000, 5000, 5000],
5519            ["Cannon_Merge", "z/games/cannonmerge/game", "", "", "cannonmerge360x100Min.webp", "D!t!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait", "2026-06-06", 5000, 5000, 5000, 5000],
5520            //
5521            ["GP_Moto_Racing_3", "z/games/gpmotoracing3/game", "", "", "gpmotoracing3360x100Min.png", "Desktop", "Landscape 3D Action Motorsport", "2023-06-16", 5000, 5000, 5000, 5000],
5522            ["Minecraft_Classic", "z/games/minecraftclassic/game", "", "", "minecraftclassic360x100Min.png", "Desktop", "Landscape 3D Adventure Creative RPG", "2021-03-26", 5000, 5000, 5000, 5000],
5523            //
5524            //["Age_Of_War", "z/games/ageofwar/game", "", "", "ageofwar360x100Min.webp", "Desktop", "Landscape Action Combat Strategy", "2025-11-02", 5000, 5000, 5000, 5000], //blood
5525            ["Truck_Loader", "z/games/truckloader/game", "", "", "truckloader360x100Min.webp", "Desktop", "Landscape Platform Puzzle", "2025-11-02", 5000, 5000, 5000, 5000],
5526            ["IQ_Ball", "z/games/iqball/game", "", "", "iqball360x100Min.webp", "Desktop", "Landscape 3Action Adventure Ball Puzzle", "2025-11-21", 5000, 5000, 5000, 5000],
5527            //
5528            ["Toll_Clicker", "z/games/tollclicker/game", "", "", "tollclicker360x100Min.webp", "D!t!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Strategy", "2026-06-24", 5000, 5000, 5000, 5000],
5529            ["Unpuzzle_Master", "z/games/unpuzzlemaster/game", "", "", "unpuzzlemaster360x100Min.webp", "D!t!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2024-12-19", 5000, 68, 68, 56], //chk-touch
5530            ["Ultimate_Car_Arena", "z/games/ultimatecararena/game", "", "", "ultimatecararena360x100Min.png", "Desktop", "Landscape 3D Action Motorsport FGO", "2023-06-16", 5000, 5000, 5000, 5000],
5531            ["18_Wheeler_Driving_Sim", "z/games/18wheelerdrivingsim/game", "", "", "18wheelerdrivingsim360x100Min.png", "Desktop", "Landscape 3D Action Jobs Motorsport", "2023-06-15", 5000, 5000, 5000, 5000],
5532            ["Duck_Hunter", "z/games/duckhunter/game", "", "", "duckhunter360x100Min.png", "Desktop i!t!PadOld i!c!PadNew i!t!Phone A!t!ndroidLow AndroidMid AndroidHigh", "Landscape Action Shooting Sport NFS", "2021-03-02", 5000, 5000, 5000, 5000],
5533            ["Squad_13", "z/games/squad13/game", "", "", "squad13360x100Min.webp", "Desktop i!c!PadOld i!c!PadNew i!c!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Action Combat Shooting SUO NFS", "2024-11-07", 5000, 5000, 5000, 5000],
5534            ["Sleeping_Beauties", "z/games/sleepingbeauties/game", "", "", "sleepingbeauties360x100Min.png", "Desktop i!t!PadOld i!t!PadNew iPhone A!c!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Puzzle", "2025-11-02", 5000, 5000, 5000, 5000],
5535            //
5536            //["3_Pandas~frivclassic.com", "z/games/3pandas/game", "", "", "3pandas360x100Min.png", "Desktop", "Landscape Adventure Platform Puzzle", "2025-11-02", 245, 245, 245, 245],
5537            //["3_Pandas_In_Brazil~frivclassic.com", "z/games/3pandasinbrazil/game", "", "", "3pandasinbrazil360x100Min.webp", "Desktop", "Landscape Adventure Platform Puzzle", "2025-11-12", 245, 245, 245, 245],
5538            //["3_Pandas_Night~frivclassic.com", "z/games/3pandasnight/game", "", "", "3pandasnight360x100Min.webp", "Desktop", "Landscape Adventure Platform Puzzle", "2025-11-12", 245, 245, 245, 245],
5539            //["3_Pandas~In_Japan", "z/games/3pandasinjapan/game", "", "", "3pandasinjapan360x100Min.webp", "Desktop", "Landscape Adventure Platform Puzzle", "2025-11-12", 245, 245, 245, 245], //d:0.42 next-ruffle
5540            //
5541            ["Find_The_Candy", "z/games/findthecandy/game", "", "", "findthecandy360x100Min.webp", "Desktop", "Landscape Puzzle", "2024-11-07", 5000, 5000, 5000, 5000],
5542            ["My_Rollercoaster", "z/games/myrollercoaster/game", "", "", "myrollercoaster360x100Min.webp", "Desktop", "Landscape Creative Jobs Puzzle SUOx", "2023-08-08", 5000, 5000, 5000, 5000],
5543            //
5544            ["Slither_Escape", "z/games/slitherescape/game", "", "", "slitherescape360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2026-09-10", 5000, 5000, 5000, 5000], //d:0.28
5545            ["Paw_Paths", "z/games/pawpaths/game", "", "", "pawpaths360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2026-09-07", 5000, 5000, 5000, 5000], //d:0.34
5546            ["Tiny_Trios", "z/games/tinytrios/game", "", "", "tinytrios360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2026-09-12", 5000, 5000, 5000, 5000], //d:0.39
5547            //
5548            ["Solitaire_Tripeaks~Garden", "z/games/solitairetripeaksgarden/game", "", "", "solitairetripeaksgarden360x100Min.webp", "Desktop iPadOld iPadNew iPhone A!tp!ndroidLow A!tp!ndroidMid AndroidHigh", "Landscape Puzzle", "2023-09-11", 5000, 5000, 5000, 5000],
5549            ["Tanks_Of_The_Galaxy", "z/games/tanksofthegalaxy/game", "", "", "tanksofthegalaxy90x25Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Combat Retro Shooting NFS", "2024-05-01", 5000, 5000, 5000, 5000],
5550            //
5551            //["Valentine's_Makeup_Trends", "z/games/valentinesmakeuptrends/game", "", "", "valentinesmakeuptrends360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-02-05", 5000, 5000, 5000, 5000],
5552            //["Valentine_Merge_Mania", "z/games/valentinemergemania/game", "", "", "valentinemergemania360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2025-02-10", 5000, 5000, 5000, 5000],
5553            //["My_Romantic_Valentine~Stories", "z/games/myromanticvalentinestories/game", "", "", "myromanticvalentinestories360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Puzzle NFS", "2024-04-16", 5000, 5000, 5000, 5000],
5554            //
5555
5556
5557            //
5558            //["XXX", "z/games/xxx/game", "", "", "xxx360x100Min.png", "Desktop", "Landscape Action Adventure Ball Combat Creative Dressup Food Jobs Motorsport 2Player Platform Puzzle Retro RPG Shooting Sport Strategy", "2021-03-08", 800, 800, 800, 800],
5559            //
5560            //removed...
5561            //["Battle_Of_Tanks", "z/games/battleoftanks/game", "", "", "battleoftanks360x100Min.jpg", "D!t!esktop i!t!PadOld !t!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Action Combat Shooting Strategy NFS", "2020-11-13", 5000, 5000, 5000, 5000], //actually-ok-on-android
5562            //["Knife_Smash", "z/games/knifesmash/game", "", "", "knifesmash360x100Min.png", "D!tp!esktop i!t!PadOld i!t!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Portrait Action Shooting NFS", "2023-08-18", 5000, 5000, 5000, 5000],
5563            //["Frozen_Candy", "z/games/frozencandy/game", "", "", "frozencandy360x100Min.webp", "D!p!esktop", "Portrait Ball Strategy", "2025-11-02", 5000, 5000, 5000, 5000],
5564            //["Gang_Blast", "z/games/gangblast/game", "", "", "gangblast360x100Min.webp", "Desktop iPadOld iPadNew iPhone A!c!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Puzzle Shooting", "2025-11-12", 234, 234, 234, 234], //d0.55
5565        ];
5566
5567        //define extra games
5568
5569        var extraGames = [
5570            //50%t & 50%p escape back
5571            //ios: first "" for both, second "" for iphone only
5572            //["XXX", "z/games/xxx/game", "", "", "xxx360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape 3D Action Adventure Ball Combat Creative Dressup Food Jobs Math Motorsport 2Player Platform Puzzle Quiz Retro RPG Shooting Sport Strategy Word Extra", "2026-05-16", 0, 0, 0, 0],
5573            //["XXX", "z/games/xxx/game", "", "", "xxx360x100Min.webp", "Desktop", "Landscape 3D Action Adventure Ball Combat Creative Dressup Food Jobs Math Motorsport 2Player Platform Puzzle Quiz Retro RPG Shooting Sport Strategy Word Extra", "2025-03-18", 0, 0, 0, 0],
5574            //
5575            /*
5576            ["Build_It", "z/games/buildit/game", "", "", "buildit360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle Extra", "2026-09-28", 0, 0, 0, 0],
5577            ["City_Defense", "z/games/citydefense/game", "", "", "citydefense360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Action Strategy Extra", "2026-09-28", 0, 0, 0, 0],
5578            ["Fire_Dragon", "z/games/firedragon/game", "", "", "firedragon360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Extra", "2026-09-28", 0, 0, 0, 0],
5579            ["Friv_Solitaire", "z/games/frivsolitaire/game", "", "", "frivsolitaire360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle Extra", "2026-09-28", 0, 0, 0, 0],
5580            ["Obby_Flip", "z/games/obbyflip/game", "", "", "obbyflip360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action form Puzzle Extra", "2026-09-28", 0, 0, 0, 0],
5581            ["Only_Up_Parkour", "z/games/onlyupparkour/game", "", "", "onlyupparkour360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape 3D Action Adventure Platform Extra", "2026-09-28", 0, 0, 0, 0],
5582            ["Paper_Flight_2", "z/games/paperflight2/game", "", "", "paperflight2360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Extra", "2026-09-28", 0, 0, 0, 0],
5583            ["Red_Ball_Forever", "z/games/redballforever/game", "", "", "redballforever360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Ball Platform Puzzle Extra", "2026-09-28", 0, 0, 0, 0],
5584            ["Red_Ball_Forever_2", "z/games/redballforever2/game", "", "", "redballforever2360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Ball Platform Puzzle Extra", "2026-09-28", 0, 0, 0, 0],
5585            ["Stickman_Revenge", "z/games/stickmanrevenge/game", "", "", "stickmanrevenge360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Combat Extra", "2026-09-28", 0, 0, 0, 0],
5586            ["The_Prisoner_Escape", "z/games/theprisonescape/game", "", "", "theprisonescape360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Platform Puzzle Extra", "2026-09-28", 0, 0, 0, 0],
5587            ["Zombu_Hunter", "z/games/zombuhunter/game", "", "", "zombuhunter360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Shooting Extra", "2026-09-28", 0, 0, 0, 0],
5588            */
5589            //
5590            //low...
5591            //
5592            ["Whiskers_Witch_Adventure", "z/games/whiskerswitchadventure/game", "", "", "whiskerswitchadventure360x100Min.webp", "Desktop", "Landscape 3D Action Adventure Halloween RPG Extra", "2025-12-08", 0, 0, 0, 0], //0.35
5593            ["Mortal_Cage~Fighter", "z/games/mortalcagefighter/game", "", "", "mortalcagefighter360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Combat NFS Extra", "2025-09-19", 0, 0, 0, 0], //:d:0.43
5594            //
5595            //["Friv_Shapes", "z/games/frivshapes/game", "", "", "frivshapes360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle Extra", "2025-03-25", 0, 0, 0, 0], //d:0.25
5596            //["Poke_The_Presidents", "z/games/pokethepresidents/game", "", "", "pokethepresidents360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape NFS Extra", "2025-03-12", 0, 0, 0, 0],
5597            //
5598            ["Go Chicken Go", "z/games/gochickengo/game", "", "", "gochickengo360x100Min.png", "Desktop iPadOld iPadNew i!c!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Extra", "2019-09-28", 0, 0, 0, 0],
5599            ["No Duck's Sky", "z/games/noduckssky/game", "", "", "noduckssky180x50Min.png", "Desktop ", "Landscape Action Platform Extra", "2019-08-16", 0, 0, 0, 0], //d:main-menu:0.53
5600            ["Robo_Hero~Red_Zone", "z/games/roboheroredzone/game", "", "", "roboheroredzone360x100Min.png", "Desktop", "Landscape Action Adventure Shooting Extra", "2020-03-31", 0, 0, 0, 0], //GRP
5601            ["Robo_Hero~Green_Zone", "z/games/roboherogreenzone/game", "", "", "roboherogreenzone360x100Min.png", "Desktop", "Landscape Action Adventure Shooting Extra", "2020-03-31", 0, 0, 0, 0], //GRP
5602            ["Robo_Hero~Blue_Zone", "z/games/roboherobluezone/game", "", "", "roboherobluezone360x100Min.png", "Desktop", "Landscape Action Adventure Shooting Extra", "2020-04-15", 0, 0, 0, 0], //GRP
5603            ["Bandito_Chase", "z/games/banditochase/game", "", "", "banditochase360x100Min.png", "Desktop", "Landscape 3D Action Motorsport FGO Extra", "2022-04-06", 0, 0, 0, 0],
5604            ["Extreme Car Parking 2", "z/games/extremecarparking2/game", "", "", "extremec
5604arparking2360x100Min.png", "Desktop", "Landscape Action Motorsport Extra", "2020-03-12", 0, 0, 0, 0],
5605            ["Break_The_Glass", "z/games/breaktheglass/game", "", "", "breaktheglass360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle Extra", "2017-06-26", 0, 0, 0, 0], //lcs-a-h:0.42
5606            ["Arcane_Weapon", "z/games/arcaneweapon/game", "", "", "arcaneweapon360x100Min.png", "Desktop", "Landscape Combat Strategy NFS Extra", "2023-04-18", 0, 0, 0, 0],
5607            ["Gingerman_Rescue", "z/games/gingermanrescue/game", "", "", "gingermanrescue360x100Min.png", "Desktop", "Landscape Action Adventure Food Platform Extra", "2021-03-02", 0, 0, 0, 0], //loader issues on mobile devices
5608            ["Couch_2048", "z/games/couch2048/game", "", "", "couch2048-min.png", "Desktop i!PadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Math Puzzle Archivex Extra", "2018-12-15", 0, 0, 0, 0],
5609            ["Free_Gear", "z/games/freegear/game", "", "", "freegear360x100Min.png", "Desktop", "Landscape Action Motorsport Archivex NFS Extra", "2023-04-26", 0, 0, 0, 0],
5610            ["The_Gate", "z/games/thegate/game", "", "", "thegate180x50Min.webp", "Desktop", "Landscape Adventure Platform Puzzle Retro Extra", "2024-05-03", 0, 0, 0, 0],
5611            ["Just One Boss", "z/games/justoneboss/game", "", "", "justoneboss108x30Min.png", "Desktop", "Landscape Action Retro Extra", "2017-02-01", 0, 0, 0, 0],
5612            // halloween extras...
5613            ["Shadoworld_Adventure", "z/games/shadoworldadventure/game", "", "", "shadoworldadventure180x50Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Halloween Platform Retro Extra", "2022-08-02", 0, 0, 0, 0],
5614            ["Dante", "z/games/dante/game", "", "", "dante360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape 3D Action Adventure Halloween Platform Puzzle RPG NFS Extra", "2024-05-22", 0, 0, 0, 0],
5615            //
5616            ["Fancypants~Adventure", "z/games/fancypantsadventure/game", "", "", "fancypantsadventure360x100Min.webp", "Desktop", "Landscape Action Adventure Platform Archivex Extra", "2024-11-07", 0, 0, 0, 0],
5617            ["Fancypants~Adventure_2", "z/games/fancypantsadventure2/game", "", "", "fancypantsadventure2360x100Min.webp", "Desktop", "Landscape Action Adventure Platform Archivex Extra", "2024-11-07", 0, 0, 0, 0],
5618            //...no big change to above since 14/01/2025
5619            ["Xenos", "z/games/xenos/game", "", "", "xenos360x100Min.webp", "Desktop", "Landscape Action Adventure Archivex Extra", "2024-10-26", 0, 0, 0, 0],
5620            ["Reborn_Relics", "z/games/rebornrelics/game", "", "", "rebornrelics180x50Min.webp", "Desktop", "Landscape Adventure Platform Puzzle Retro Extra", "2024-03-01", 0, 0, 0, 0],
5621            ["Mad Day Special", "z/games/maddayspecial/game", "", "", "madday360x100Min.png", "Desktop", "Landscape Action Motorsport Shooting NFS Extra", "2016-12-01", 0, 0, 0, 0],
5622            ["Command~And_Defend", "z/games/commandanddefend/game", "", "", "commandanddefend108x30Min.png", "Desktop", "Landscape Action Combat Strategy NFS Extra", "2023-03-03", 0, 0, 0, 0],
5623            ["Caveman", "z/games/caveman/game", "", "", "caveman360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Platform Retro Extra", "2025-06-24", 0, 0, 0, 0],
5624            ["Refuge_Solitaire", "z/games/refugesolitaire/game", "", "", "refugesolitaire360x100Min.png", "Desktop", "Landscape Card Extra", "2019-08-16", 0, 0, 0, 0],
5625            ["Ball_Crush", "z/games/ballcrush/game", "", "", "ballcrush360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Ball Puzzle Extra", "2025-03-25", 0, 0, 0, 0],
5626            ["Cubob", "z/games/cubob/game", "", "", "cubob360x100Min.png", "Desktop iPadOld iPadNew iPhone A!c!ndroidLow AndroidMid AndroidHigh", "Landscape Platform Puzzle Shooting Extra", "2023-07-25", 0, 0, 0, 0],
5627            ["Incy_Inca", "z/games/incyinca/game", "", "", "incyinca180x50Min.webp", "Desktop", "Landscape Action Platform Retro Extra", "2024-12-29", 0, 0, 0, 0],
5628            ["Mr._Superfire", "z/games/mrsuperfire/game", "", "", "mrsuperfire360x100Min.png", "Desktop i!c!PadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Action Platform Shooting NFS Extra", "2023-06-28", 0, 0, 0, 0],
5629            ["Jo_Jump", "z/games/jojump/game", "", "", "jojump360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Platform Extra", "2025-02-19", 0, 0, 0, 0],
5630            //
5631            ["Mage_Girl~Adventure", "z/games/magegirladventure/game", "", "", "magegirladventure360x100Min.png", "Desktop i!t!PadOld i!t!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Combat Platform Retro Extra", "2021-01-01", 0, 0, 0, 0],
5632            ["Wheely", "z/games/wheely/game", "", "", "wheely360x100Min.png", "Desktop T!tc!ouch", "Landscape Platform Puzzle Extra", "2021-02-24", 0, 0, 0, 0], //try-flash-version
5633            ["Red_Ball", "z/games/redball/game", "", "", "redball360x100Min.png", "Desktop iPadOld iPadNew iPhone A!c!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Adventure Ball Platform Extra", "2023-01-26", 0, 0, 0, 0],
5634
5635            ["Cat_Survivors", "z/games/catsurvivors/game", "", "", "catsurvivors360x100Min.webp", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Extra", "2025-12-14", 0, 0, 0, 0],
5636            //
5637            ["Clash_Of_Vikings", "z/games/clashofvikings/game", "", "", "clashofvikings360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Action Combat Strategy Extra", "2025-08-04", 0, 0, 0, 0],
5638            ["Shooter_Piggy", "z/games/shooterpiggy/game", "", "", "shooterpiggy360x100Min.png", "Desktop", "Landscape Action Retro Shooting Extra", "2023-08-08", 0, 0, 0, 0], //not-good-on-touch
5639            ["Need_Brain", "z/games/needbrain/game", "", "", "needbrain360x100Min.webp", "Desktop", "Landscape Halloween Puzzle Shooting Extra", "2025-11-21", 0, 0, 0, 0],
5640            ["Steel_Dangers", "z/games/steeldangers/game", "", "", "steeldangers360x100Min.png", "Desktop", "Landscape Action Combat Shooting NFS Extra", "2023-03-03", 0, 0, 0, 0],
5641            //
5642            ["Hall_Of_The_Wild", "z/games/hallofthewild/game", "", "", "hallofthewild360x100Min.webp", "Desktop", "Landscape Action Adventure Platform Extra", "2025-11-21", 0, 0, 0, 0],
5643            ["Magikmon", "z/games/magikmon/game", "", "", "magikmon360x100Min.jpg", "!p! Desktop", "Portrait RPG Strategy Halloween Extra", "2019-09-20", 0, 0, 0, 0],
5644            ["Mushroomer", "z/games/mushroomer/game", "", "", "mushroomer360x100Min.png", "Desktop", "Landscape Adventure Food Platform Extra", "2023-01-26", 0, 0, 0, 0],
5645            ["Farm_Bee", "z/games/farmbee/game", "", "", "farmbee360x100Min.webp", "Desktop t!t!ouch", "Landscape Action Retro Extra", "2025-11-12", 0, 0, 0, 0],
5646            ["Crush_It", "z/games/crushit/game", "", "", "crushit180x50Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Retro Extra", "2026-01-13", 0, 0, 0, 0],
5647            ["Sami's_Pet_Care", "z/games/samispetcare/game", "", "", "samispetcare360x100Min.png", "Desktop", "Landscape Jobs Strategy Archivex Extra", "2021-12-07", 0, 0, 0, 0],
5648            ["Grab_Pack_Playtime_2", "z/games/grabpackplaytime2/game", "", "", "grabpackplaytime2360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle Extra", "2026-08-18", 0, 0, 0, 0],
5649            ["Hanna_In_A_Choppa", "z/games/hannainachoppa/game", "", "", "hannainachoppa360x100Min.png", "Desktop", "Landscape Action Extra", "2021-03-27", 0, 0, 0, 0],
5650            ["Hanna_In_A_Choppa_2", "z/games/hannainachoppa2/game", "", "", "hannainachoppa2360x100Min.png", "Desktop", "Landscape Action Extra", "2023-04-19", 0, 0, 0, 0],
5651            //lcs desktop...
5652            //["Island_Of~Pirates", "z/games/islandofpirates/game", "", "", "islandofpirates360x100Min.png", "Desktop", "Landscape Motorsport NFS Extra", "2023-06-15", 0, 0, 0, 0], //d:0.48
5653
5654            //t7 t8 t9
5655            ["Pop_Adventure", "z/games/t9-popadventure/game", "", "", "t9-popadventure360x100Min.png", "Desktop", "Landscape Extra", "2026-03-17", 0, 0, 0, 0],//d:0.70
5656            ["Merge_Fruit", "z/games/t7-mergefruit/game", "", "", "t7-mergefruit360x100Min.png", "Desktop", "Landscape Extra", "2025-08-07", 0, 0, 0, 0], //d:0.66
5657            ["Princess_Warrior", "z/games/t7-princesswarrior/game", "", "", "t7-princesswarrior360x100Min.png", "Desktop", "Landscape Extra", "2025-08-07", 0, 0, 0, 0], //d:0.61
5658            ["Pengu_Adventure", "z/games/t9-penguadventure/game", "", "", "t9-penguadventure360x100Min.png", "Desktop", "Landscape Extra", "2026-05-21", 0, 0, 0, 0], //d:0.57
5659            ["Bubble_Shooter", "z/games/t7-bubbleshooter/game", "", "", "t7-bubbleshooter360x100Min.png", "Desktop", "Landscape Extra", "2025-08-07", 0, 0, 0, 0], //d:0.56
5660            //
5661            ["Satan_Slayer", "z/games/t8-satanslayer/game", "", "", "t8-satanslayer360x100Min.png", "Desktop", "Landscape Extra", "2025-11-07", 0, 0, 0, 0], //d:0.50
5662            ["Color_Match_Master", "z/games/t9-colormatchmaster/game", "", "", "t9-colormatchmaster360x100Min.png", "Desktop", "Landscape Extra", "2026-03-17", 0, 0, 0, 0], //d:0.50
5663            //
5664            ["Hippo_Supermarket", "z/games/t9-hipposupermarket/game", "", "", "t9-hipposupermarket360x100Min.png", "Desktop", "Landscape Extra", "2026-03-17", 0, 0, 0, 0], //d:0.48
5665            ["Jungle_Merge", "z/games/t7-junglemerge/game", "", "", "t7-junglemerge360x100Min.png", "Desktop", "Landscape Extra", "2025-08-0
56657", 0, 0, 0, 0], //d:0.48
5666            ["Italian_Brainrot~Merge_Fellas", "z/games/t7-italianbrainrotmergefellas/game", "", "", "t7-italianbrainrotmergefellas360x100Min.png", "Desktop", "Landscape Extra", "2025-08-07", 0, 0, 0, 0], //d:0.47 huge-!p
5667            ["Hero_Shooter", "z/games/t9-heroshooter3d/game", "", "", "t9-heroshooter3d360x100Min.png", "Desktop", "Landscape Extra", "2026-03-17", 0, 0, 0, 0], //d:0.46
5668            ["Alien_Adventure", "z/games/t7-alienadventure/game", "", "", "t7-alienadventure360x100Min.png", "Desktop", "Landscape Extra", "2025-08-07", 0, 0, 0, 0], //d:0.45
5669            //
5670            ["Crossmath", "z/games/t9-crossmath/game", "", "", "t9-crossmath360x100Min.png", "Desktop", "Landscape Extra", "2026-03-17", 0, 0, 0, 0], //d:0.42 //for-school
5671            //
5672            ["Solitaire_Collection", "z/games/t8-solitairecollection/game", "", "", "t8-solitairecollection360x100Min.png", "Desktop", "Landscape Extra", "2025-11-07", 0, 0, 0, 0], //d:0.67 retesting-after-expiry
5673        ];
5674
5675        if (shortLang == "en") {
5676            games.unshift(
5677                ["My_Musical~Love_Story", "z/games/mymusicallovestory/game", "", "", "mymusicallovestory360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Creative Dressup Jobs NFS", "2025-03-25", 80, 80, 80, 80],
5678                ["Fashion_Intern~A_Journey~Into_Fashion", "z/games/fashioninternajourneyintostyle/game", "", "", "fashioninternajourneyintostyle360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Creative Dressup Jobs NFS", "2025-05-02", 80, 80, 80, 80], //d:0.49-low-for-fashion
5679                ["Resort~Empire", "z/games/resortempire/game", "", "", "resortempire120x33Min.png", "Desktop i!later!PadOld i!later!PadNew i!later!Phone A!c!ndroidLow AndroidMid AndroidHigh", "Landscape Creative Food Jobs Retro Strategy Archivex", "2023-04-22", 5000, 5000, 5000, 5000],
5680                ["Emoji_Quiz", "z/games/emojiquiz/game", "", "", "emojiquiz360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle NFS!tp!", "2024-12-16", 5000, 5000, 5000, 5000],
5681            );
5682        }
5683
5684        //console.log("ppp games just defined");
5685        //console.log("ppp games", JSON.stringify(games, null, 2)); frivolous
5686
5687        //add friv.com only games
5688        //console.log("HOST: " + host);
5689        if (debug || host == "www.friv.com") {
5690            games.unshift( //.push to add at end
5691                //
5692            );
5693        }
5694
5695        //define christmas games (add)
5696        if (specialPeriod == "christmas" || testVer) {
5697            games.unshift(
5698                //["Friv_Christmas_Clicker", "z/games/frivchristmasclicker/index", "", "", "frivchristmasclicker360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Xmas", "2021-12-09", -1, -1, -1, -1],
5699                ["Color_Me~Christmas", "z/games/colormechristmas/game", "", "", "colormechristmas360x100Min.png", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Creative Xmas", "2020-03-08", 4888, 4888, 4888, 4888], //GRP d:2078-0.58
5700                ["Doc_Darling~Santa_Surgery", "z/games/docdarlingsantasurgery/game", "", "", "docdarlingsantasurgery360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Jobs Xmas", "2022-12-15", 272, 101, 101, 101], //GRP d:673-0.54
5701                ["Farafetcha~Christmas", "z/games/farafetchachristmas/game", "", "", "farafetchachristmas360x100Min.webp", "Desktop", "Landscape Puzzle Xmas", "2023-12-19", 67, 67, 67, 67], //GRP d:6341-0.41
5702                //
5703                ["Ellie_New_Year's_Eve_Party", "z/games/ellienewyearseveparty/game", "", "", "ellienewyearseveparty2026360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup", "2024-12-21", 25, 25, 25, 25],
5704                ["New_Year_Makeup_Trends", "z/games/newyearmakeuptrends/game", "", "", "newyearmakeuptrends360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-12-21", 25, 25, 25, 25],
5705                ["Celebrity_Winter_Clash", "z/games/celebritywinterwonderlandclash/game", "", "", "celebritywinterwonderlandclash360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Xmas NFS", "2025-12-09", 25, 25, 25, 25],
5706                ["Santa_Haircut", "z/games/santahaircut/game", "", "", "santahaircut360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs Xmas", "2021-08-14", 25, 25, 25, 25], //d:18219-0.60
5707                ["Santa_Games", "z/games/santagames/game", "", "", "santagames180x50Min.png", "Desktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Platform Retro Xmas", "2022-12-23", 25, 25, 25, 25], //d:18226-0.53
5708                ["BFF's_Winter_Holidays", "z/games/bffswinterholidays/game", "", "", "bffswinterholidays360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup", "2024-12-08", 25, 25, 25, 25], //6790-0.66 no 'xmas' due to xmas indicator placement
5709                ["My_Xmas_Selfie", "z/games/myxmasselfie/game", "", "", "myxmasselfie360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Xmas", "2020-03-08", 25, 25, 25, 25], //d:7029-0.64
5710                ["Mr._And_Mrs._Santa", "z/games/mrandmrssantachristmasadventure/game", "", "", "mrandmrssantachristmasadventure360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Creative Dressup Jobs Xmas", "2023-12-17", 25, 25, 25, 25], //4843-0.65
5711                ["Santa_Rescue", "z/games/santarescue/game", "", "", "santarescue360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle Xmas", "2024-12-23", 25, 25, 25, 25], //6606-0.58
5712                ["Sophie_Snowball", "z/games/sophiesnowball/game", "", "", "sophiesnowball360x100Min.png", "Desktop", "Landscape Action Adventure Platform Xmas", "2021-07-26", 25, 25, 25, 25], //d:7246-0.56 buttons-too-small-for-touch-nko
5713                ["Frozen_Christmas", "z/games/frozenchristmasextremehomemakeover/game", "", "", "frozenchristmasextremehomemakeover360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS Xmas", "2024-12-03", 25, 25, 25, 25], //d:9417-0.55
5714                ["Catch_The_Candy_Xmas", "z/games/catchthecandyxmas/game", "", "", "catchthecandyxmas360x100Min.webp", "Desktop", "Landscape Puzzle Xmas", "2023-12-19", 25, 25, 25, 25], //d:4275-0.53
5715                ["Baby_Alice_Christmas", "z/games/babyalicechristmas/game", "", "", "babyalicechristmas360x100Min.webp", "Desktop", "Landscape Creative Dressup Xmas SUO", "2023-12-19", 25, 25, 25, 25], //d:4191-0.52
5716                ["Santa_Girl~Runner", "z/games/santagirlrunner/game", "", "", "santagirlrunner360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Platform Xmas", "2021-12-14", 25, 25, 25, 25], //d:1393-0.51
5717
5718                //
5719                ["Gift_Grid", "z/games/giftgrid/game", "", "", "giftgrid360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle Xmas", "2025-12-22", 25, 25, 25, 25],
5720                ["Peppermint_Pipeline", "z/games/peppermintpipeline/game", "", "", "peppermintpipeline360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle Xmas", "2025-12-22", 25, 25, 25, 25],
5721                //
5722                ["Christmas_Stacker", "z/games/christmasstacker/game", "", "", "christmasstacker360x100Min.webp", "Desktop", "Landscape Puzzle Xmas", "2025-12-10", 25, 25, 25, 25],
5723                //
5724                ["Santa_Jigsaw_Puzzle", "z/games/santajigsawpuzzle/game", "", "", "santajigsawpuzzle360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle Xmas", "2022-01-01", 25, 25, 25, 25], //d:2935-0.49
5725                ["Gift_Rush_Christmas", "z/games/giftrushchristmas/game", "", "", "giftrushchristmas360x100Min.webp", "Desktop", "Landscape Action Ball Platform Puzzle Xmas NFS", "2023-12-19", 25, 25, 25, 25], //d:2649-0.49 sl
5726                ["Doctor_Acorn_Winter", "z/games/doctoracornwinter/game", "", "", "doctoracornwinter360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Action Adventure Platform Puzzle Xmas", "2020-02-12", 25, 25, 25, 25], //d:2343-0.49
5727                //
5728                ["Christmas_Rooms", "z/games/christmasrooms/game", "", "", "christmasrooms360x100Min.webp", "Desktop", "Landscape Creative Dressup Xmas", "2023-12-19", 5000, 5000, 5000, 5000], //d:424-0.49 UNPOPULAR
5729                ["Santa's_Chimney~Trouble", "z/games/santaschimneytrouble/game", "", "", "santaschimneytrouble360x100Min.png", "Desktop", "Landscape Puzzle Xmas", "2021-12-14", 5000, 5000, 5000, 5000], //d:4
5729683-0.47
5730                ["Decorate_For_Christmas", "z/games/decorateforchristmas/game", "", "", "decorateforchristmas360x100Min.webp", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Creative Dressup Xmas", "2023-12-17", 5000, 5000, 5000, 5000], //d:1763-0.47
5731                ["Mission_In_Snowdriftland", "z/games/missioninsnowdriftland/game", "", "", "missioninsnowdriftland180x50Min.png", "Desktop", "Landscape Action Adventure Platform Retro SUO Xmas", "2023-08-08", 5000, 5000, 5000, 5000], //d:604-0.46 UNPOPULAR
5732                ["Winter_Wonder_Merge", "z/games/winterwondermerge/game", "", "", "winterwondermerge360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle Xmas", "2023-12-17", 5000, 5000, 5000, 5000], //d:1750-0.43
5733                ["Snowline", "z/games/snowline/game", "", "", "snowline360x100Min.png", "Desktop", "Landscape Platform Puzzle Xmas", "2023-12-19", 5000, 5000, 5000, 5000], //d:896-0.43
5734                ["Christmas_Fishing", "z/games/christmasfishing/game", "", "", "christmasfishing360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Action Jobs Xmas", "2024-11-18", 5000, 5000, 5000, 5000], //d:295-d:0.39 UNPOPULAR
5735                //
5736                //["Find_The_Candy_Winter", "z/games/findthecandywinter/game", "", "", "findthecandywinter360x100Min.webp", "Desktop", "Landscape Puzzle Xmas", "2024-11-07", 5000, 5000, 5000, 5000], //level-4-issue-next-ruffle
5737                //["Wrap_Attack", "z/games/wrapattack/game", "", "", "wrapattack360x100Min.webp", "Desktop", "Landscape Action Platform Xmas New", "2023-12-19", 25, 25, 25, 25], //next-ruffle
5738            );
5739        } else {
5740            xmasRemove.style.display = "none"; //remove option to search for christmas games
5741        }
5742
5743        //define pre-halloween games (add)
5744        if (specialPeriod == "preHalloween" || specialPeriod == "halloween" || testVer) {
5745            games.unshift(
5746
5747                ["Gothic_Princess~Real_Makeover", "z/games/gothicprincessrealmakeover/game", "", "", "gothicprincessrealmakeover360x100Min.jpg", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Halloween", "2020-10-22", 90, 90, 90, 90], //0.56 ///iph-0.36
5748                ["Halloween_Spooky_Pancakes", "z/games/halloweenspookypancakes/game", "", "", "halloweenspookypancakes360x100Min.webp", "Desktop", "Landscape Creative Halloween Jobs", "2023-10-20", 90, 90, 90, 90], //0.58
5749                ["Scary_Lily~Makeover", "z/games/scarylilymakeover/game", "", "", "scarylilymakeover360x100Min.webp", "Desktop", "Landscape Creative Dressup Halloween", "2024-10-12", 90, 90, 90, 90], //0.56
5750                ["Zombie_Hunter~Adventure", "z/games/zombiehunteradventure/game", "", "", "zombiehunteradventure360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Halloween Platform Shooting Extra", "2026-07-22", 90, 90, 90, 90], //0.59
5751                ["Vampire_Skills", "z/games/vampireskills/game", "", "", "vampireskills360x100Min.png", "Desktop T!t!ouch", "Landscape Adventure Puzzle Halloween NFS", "2021-01-15", 90, 90, 90, 90], //d:0.52
5752                ["Zombies_Assault", "z/games/zombiesassault/game", "", "", "zombiesassault360x100Min.webp", "Desktop", "Landscape Action Adventure Combat Halloween Platform Shooting NFS", "2023-10-24", 90, 90, 90, 90], //d:0.47
5753                ["Zombie_Onslaught", "z/games/zombieonslaught/game", "", "", "zombieonslaught360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Action Shooting NFS Halloween", "2017-06-26", 90, 90, 90, 90], //0.45
5754                ["Zombie_Head", "z/games/zombiehead/game", "", "", "zombiehead360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Action Shooting Halloween", "2020-10-26", 90, 90, 90, 90], //d:0.44 //iph:0.30 //ipn:0.37
5755                ["Bury_The_Bones", "z/games/burythebones/game", "", "", "burythebones360x100Min.webp", "Desktop", "Landscape Action Halloween Puzzle", "2024-10-12", 90, 90, 90, 90], //d:0.43
5756                //["Spooky_Halloween_Jigsaw", "z/games/spookyhalloweenjigsawpuzzle/game", "", "", "spo
5756okyhalloweenjigsawpuzzle360x100Min.webp", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Portrait Halloween Puzzle", "2024-10-27", 90, 90, 90, 90], //d:0.36 iph:0.18 worst-2025
5757                //["The_Zombie_Show", "z/games/thezombieshow/game", "", "", "thezombieshow360x100Min.png", "Desktop", "Landscape Action Platform Puzzle NFS", "2023-04-18", 90, 90, 90, 90], //d:sub-0.3 next-ruffle
5758            );
5759        }
5760
5761        //define halloween games (add)
5762        if (specialPeriod == "halloween" || testVer) {
5763            games.unshift(
5764                ["Monster_Girls_Back_To_School", "z/games/monstergirlsbacktoschool/game", "", "", "monstergirlsbacktoschool360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Halloween SUO", "2025-10-06", 16, 16, 16, 16], //0.66
5765                ["Cat_Girl_Halloween_Prep", "z/games/catgirlhalloweenpreparation/game", "", "", "catgirlhalloweenpreparation360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Halloween SUO", "2025-10-06", 16, 16, 16, 16], //0.65
5766                ["BFFs_Day_Of_The_Dead~Celebration", "z/games/bffsdayofthedeadcelebration/game", "", "", "bffsdayofthedeadcelebration360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Halloween", "2024-09-25", 16, 16, 16, 16], //0.63
5767                ["Halloween_Bubble~Shooter", "z/games/halloweenbubbleshooter/game", "", "", "halloweenbubbleshooter360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Ball Puzzle Halloween", "2023-10-10", 16, 16, 16, 16], //0.62
5768                ["Halloween_Merge_Mania", "z/games/halloweenmergemania/game", "", "", "halloweenmergemania360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Halloween Puzzle", "2024-10-27", 16, 16, 16, 16], //0.64
5769                ["Makeup_Studio_Halloween", "z/games/makeupstudiohalloween/game", "", "", "makeupstudiohalloween360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Halloween", "2024-09-30", 16, 16, 16, 16], //d:0.64
5770                ["BFFs_Unique_Halloween~Costumes", "z/games/bffsuniquehalloweencostumes/game", "", "", "bffsuniquehalloweencostumes360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Halloween", "2024-09-30", 16, 16, 16, 16], //d:0.61
5771                ["Friv_Halloween_Memory", "z/games/frivhalloweenmemory/game", "", "", "frivhalloweenmemory360x100Min.webp", "Desktop i!t!PadOld i!t!PadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Halloween Puzzle", "2024-10-09", 90, 90, 90, 90], //d:0.43
5772                ["Boss_Level_Pumpkin~Madness", "z/games/bosslevelpumpkinmadness/game", "", "", "bosslevelpumpkinmadness360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Action Shooting Halloween", "2020-10-22", 90, 90, 90, 90], //d:0.39
5773                // others
5774                ["Vampire~Jackie", "z/games/vampirejackie/game", "", "", "vampirejackie360x100Min.webp", "Desktop", "Landscape Action Halloween Puzzle", "2025-10-26", 5000, 5000, 5000, 5000], //d:0.48
5775                ["Working_Stiffs", "z/games/workingstiffs/game", "", "", "workingstiffs120x33Min.webp", "Desktop", "Landscape Action Halloween Retro Shooting NFS", "2025-10-26", 5000, 5000, 5000, 5000], //d:0.47
5776            );
5777        } else {
5778            halloweenRemove.style.display = "none"; //remove option to search for halloween games
5779        }
5780
5781        //add en-only games
5782        if (specialPeriod == "halloween" && shortLang == "en") {
5783            games.unshift(
5784                ["Halloween_Wordsearch", "z/games/halloweenwordsearch/game", "", "", "halloweenwordsearch360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle Halloween", "2022-10-26", 91, 91, 91, 91], //d:0.44
5785            );
5786        }
5787
5788
5789
5790        //BREAKPOINT
5791        ////////////
5792        if (breakPoint) {
5793            gtag('event', 'Breakpoint 05', {
5794                'event_category': 'Debug',
5795                'event_label': 'Breakpoints'
5796            });
5797        }
5798        ////////////
5799        ////////////
5800
5801
5802
5803        //add school only games / define school games
5804        if (isSchool || testVer) {
5805            games.unshift(
5806                //add pixel art nubia
5807                ["Liquid_Sort", "z/games/liquidsort/game", "", "", "liquidsort360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2023-06-19", 0, 0, 0, 0],
5808                ["Pixel_Sandbox", "z/games/pixelsandbox/game", "", "", "pixelsandbox120x33Min.png", "Desktop", "Landscape Creative Retro", "2020-06-23", 0, 0, 0, 0],
5809                ["Checkers", "z/games/checkers/game", "", "", "checkers360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle 2Player", "2022-08-11", 0, 0, 0, 0],
5810                ["Spot_The_Difference", "z/games/spotthedifference/game", "", "", "spotthedifference360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2022-07-21", 0, 0, 0, 0],
5811                ["Dominoes", "z/games/dominoes/game", "", "", "dominoes360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2023-09-02", 0, 0, 0, 0],
5812                ["Math_Duck", "z/games/mathduck/game", "", "", "mathduck90x25Min.png", "Desktop", "Landscape Adventure Math Platform Puzzle", "2022-09-05", 0, 0, 0, 0], //iosn:0.25 //touch-controls-are-there-but-do-not-appear-nko
5813                ["Big_Brain_2048", "z/games/bigbrain2048/game", "", "", "bigbrain2048360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Math Puzzle", "2023-07-02", 0, 0, 0, 0],
5814                ["Impossible_10", "z/games/impossible10/game", "", "", "impossible10360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Math Puzzle", "2022-01-09", 0, 0, 0, 0],
5815                ["Tangram_Grid", "z/games/tangramgrid/game", "", "", "tangramgrid360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Math Puzzle", "2022-11-30", 0, 0, 0, 0],
5816                ["Classic_Nonogram", "z/games/classicnonogram/game", "", "", "classicnonogram360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Math Puzzle", "2023-03-01", 0, 0, 0, 0],
5817                //
5818                //["Christmas_Sliding_Puzzle", "z/games/christmasslidingpuzzle/game", "", "", "christmasslidingpuzzle360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait 3D Puzzle Xmas", "2023-12-17", 0, 0, 0, 0], //d:478-0.43 SCH
5819                //["A_Blocky_Christmas", "z/games/ablockychristmas/game", "", "", "ablockychristmas360x100Min.webp", "Desktop", "Landscape Puzzle Xmas", "2023-12-19", 0, 0, 0, 0], //d:444-0.42 SCH
5820                //["Christmas_Dot_To_Dot", "z/games/christmasdottodot/game", "", "", "christmasdottodot360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle Xmas", "2024-12-23", 0, 0, 0, 0], //d:2053-0.37 SCH
5821                //["Christmas_Tree~Decoration", "z/games/christmastreedecoration/game", "", "", "christmastreedecoration360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Portrait Creative Xmas", "2022-12-15", 0, 0, 0, 0], //d:2038-0.37 SCH
5822                //["Factory_Balls~Christmas", "z/games/factoryballschristmas/game", "", "", "factoryballschristmas360x100Min.png", "Desktop", "Landscape Puzzle Xmas", "2021-12-08", 0, 0, 0, 0], //d:5023-0.32 SCH
5823                //["Santa's_Delivery", "z/games/santasdelivery/game", "", "", "santasdelivery120x33Min.png", "Desktop", "Landscape Puzzle Retro Xmas", "2022-12-15", 0, 0, 0, 0], //d:2721-0.29 SCH
5824                //
5825                ["Tower_Blaster", "z/games/towerblaster/game", "", "", "towerblaster360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Math Puzzle", "2024-03-04", 
58250, 0, 0, 0],
5826                ["Slide", "z/games/slide/game", "", "", "slide360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2021-01-07", 0, 0, 0, 0],
5827                ["Friv_Pixel_Painter", "z/games/frivpixelpainter/game", "", "", "frivpixelpainter360x100Min.png", "Desktop", "Landscape Creative", "2023-11-23", 0, 0, 0, 0],
5828                ["Ultimate_Sudoku", "z/games/ultimatesudoku/game", "", "", "ultimatesudoku360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Math Puzzle Strategy", "2023-03-01", 0, 0, 0, 0],
5829                ["Slice_It_Fair", "z/games/sliceitfair/game", "", "", "sliceitfair360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Food Puzzle", "2020-10-13", 0, 0, 0, 0],
5830                ["Play_Maze", "z/games/playmaze/game", "", "", "playmaze360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2023-02-15", 0, 0, 0, 0], //portrait?
5831                ["Wordsearch", "z/games/wordsearch/game", "", "", "wordsearch360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Word", "2023-03-01", 0, 0, 0, 0], //new-music
5832                ["Math_Matchsticks", "z/games/mathmatchsticks/game", "", "", "mathmatchsticks360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Math Puzzle", "2023-06-19", 0, 0, 0, 0],
5833                ["Math_Challenge", "z/games/mathchallenge/game", "", "", "mathchallenge360x100Min.webp", "Desktop", "Landscape Action Math 2Player Puzzle", "2024-10-12", 0, 0, 0, 0],
5834                ["Powderz", "z/games/powderz/game", "", "", "powderz180x50Min.webp", "Desktop iPadOld iPadNew iPhone A!c!ndroidLow AndroidMid AndroidHigh", "Landscape Creative Retro", "2025-07-19", 0, 0, 0, 0],
5835                ["Kitchen_Sorting", "z/games/kitchensorting/game", "", "", "kitchensorting360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Food Jobs Puzzle Retro", "2025-06-18", 0, 0, 0, 0],
5836                ["Animals_Connect", "z/games/animalsconnect/game", "", "", "animalsconnect360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2024-11-05", 0, 0, 0, 0],
5837                ["Goose_Game", "z/games/goosegame/game", "", "", "goosegame360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape 2Player", "2021-03-08", 0, 0, 0, 0],
5838                ["Switch_Magic", "z/games/switchmagic/game", "", "", "switchmagic180x50Min.png", "Desktop i!t!PadOld i!c!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Adventure Platform Puzzle Retro", "2022-11-15", 0, 0, 0, 0], //no touch buttons on iPadNew
5839                ["Friv_Blocks_2048", "z/games/frivblocks2048/game", "", "", "frivblocks2048360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Math Strategy", "2024-09-14", 0, 0, 0, 0],
5840                ["Snoring_Elephant~Puzzle", "z/games/snoringelephantpuzzle/game", "", "", "snoringelephantpuzzle360x100Min.png", "Desktop", "Landscape Puzzle", "2020-01-30", 0, 0, 0, 0],
5841                ["Snoring_Elephant~Puzzle_2", "z/games/snoringelephantpuzzle2/game", "", "", "snoringelephantpuzzle2360x100Min.png", "Desktop", "Landscape Puzzle", "2020-01-30", 0, 0, 0, 0],
5842                ["Merge_Dice", "z/games/mergedice/game", "", "", "mergedice360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Math Puzzle", "2023-06-28", 0, 0, 0, 0],
5843                ["Cat_Around~The_World", "z/games/cataroundtheworld/game", "", "", "cataroundtheworld360x100Min.png", "Desktop", "Landscape Puzzle", "2020-01-28", 0, 0, 0, 0],
5844                ["Little_Wheel", "z/games/littlewheel/game", "", "", "littlewheel360x100Min.png", "Desktop", "Landscape Adventure Puzzle", "2023-01-26", 0, 0, 0, 0], //too-small-for-phones
5845                ["Mitch_&_Titch~Forest", "z/games/mitchandtitchforestfrolic/game", "", "", "mitchandtitchforestfrolic360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Adventure 2Player Platform Puzzle Retro", "2020-07-20", 0, 0, 0, 0], //GRP
5846                ["Mitch_&_Titch~Candyland", "z/games/mitchandtitchcandylandcaper/game", "", "", "mitchandtitchcandylandcaper360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Adventure 2Player Platform Puzzle Retro", "2021-01-01", 0, 0, 0, 0], //GRP
5847                ["Mitch_&_Titch~Sinkhole", "z/games/mitchandtitchsinkholesetback/game", "", "", "mitchandtitchsinkholesetback360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Adventure 2Player Platform Puzzle Retro", "2021-04-30", 0, 0, 0, 0], //GRP
5848                ["Link_n_Merge", "z/games/linknmerge/game", "", "", "linknmerge360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Math Puzzle", "2023-07-29", 0, 0, 0, 0],
5849                ["Geometry Tower", "z/games/geometrytower/game", "", "", "geometrytower360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2019-12-05", 0, 0, 0, 0],
5850                ["Color_Box_Puzzle", "z/games/colorboxpuzzle/game", "", "", "colorboxpuzzle360x100Min.webp", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Puzzle Retro", "2024-01-11", 0, 0, 0, 0],
5851                ["Spiro", "z/games/spiro/game", "", "", "spiro360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Creative Math", "2023-06-19", 0, 0, 0, 0],
5852                ["Wacky_Snakes~And_Ladders", "z/games/wackysnakesandladders/game", "", "", "wackysnakesandladders360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape 2Player Puzzle", "2022-08-03", 0, 0, 0, 0],
5853                ["Color_Me", "z/games/colorme/game", "", "", "colorme360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2023-09-23", 0, 0, 0, 0],
5854                ["Pin_Cracker", "z/games/pincracker/game", "", "", "pincracker360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Math Puzzle", "2023-02-15", 0, 0, 0, 0],
5855                ["Parking_Block", "z/games/parkingblock/game", "", "", "parkingblock360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2023-03-01", 0, 0, 0, 0],
5856                ["Animal_Words", "z/games/animalwords/game", "", "", "animalwords360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Word", "2023-07-02", 0, 0, 0, 0],
5857                ["Math_Battle", "z/games/mathbattle/game", "", "", "mathbattle360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Math", "2023-06-19", 0, 0, 0, 0],
5858                ["Word_Finder", "z/games/wordfinder/game", "", "", "wordfinder360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Word", "2023-03-01", 0, 0, 0, 0],
5859                ["Flags_Maniac", "z/games/flagsmaniac/game", "", "", "flagsmaniac360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Quiz", "2023-03-01", 0, 0, 0, 0],
5860                ["Farm_Factory", "z/games/farmfactory/game", "", "", "farmfactory360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Food Jobs Strategy", "2023-03-14", 
58600, 0, 0, 0],
5861                ["Free_Words", "z/games/freewords/game", "", "", "freewords360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Word", "2023-03-01", 0, 0, 0, 0],
5862                ["Feed~Math", "z/games/feedmath/game", "", "", "feedmath360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Math", "2023-02-15", 0, 0, 0, 0],
5863                ["Multiplication", "z/games/multiplication/game", "", "", "multiplication360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Math", "2023-07-02", 0, 0, 0, 0],
5864                ["Virtual_Electric_Piano", "z/games/virtualelectricpiano/game", "", "", "virtualelectricpiano360x100Min.png", "Desktop i!c!PadOld i!c!PadNew i!c!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Creative", "2022-12-28", 0, 0, 0, 0],
5865                ["Ursula_Home_Decorator", "z/games/ursulahomedecorator/game", "", "", "ursulahomedecorator360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Jobs", "2021-09-17", 0, 0, 0, 0], //GRP
5866                ["Ursula_Shop_Designer", "z/games/ursulashopdesigner/game", "", "", "ursulashopdesigner360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Jobs", "2022-04-15", 0, 0, 0, 0], //GRP
5867                ["Ursula_Garden_Designer", "z/games/ursulagardendesigner/game", "", "", "ursulagardendesigner360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Jobs", "2022-05-13", 0, 0, 0, 0], //GRP
5868                ["Ball_Puzzle", "z/games/ballpuzzle/game", "", "", "ballpuzzle360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Ball Puzzle", "2023-07-29", 0, 0, 0, 0],
5869                ["Fishy_Friends_Jigsaw", "z/games/fishyfriendsjigsaw/game", "", "", "fishyfriendsjigsaw360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2025-02-19", 0, 0, 0, 0],
5870                ["Friv_Genius_Coder", "z/games/frivgeniuscoder/game", "", "", "frivgeniuscoder360x100Min.webp", "Desktop", "Landscape Word", "2025-01-30", 0, 0, 0, 0],
5871                ["Rewire", "z/games/rewire/game", "", "", "rewire360x100Min.webp", "Desktop", "Landscape Puzzle", "2024-06-18", 0, 0, 0, 0],
5872                ["Sprunki_Music_Maker", "z/games/sprunkimusicmaker/game", "", "", "sprunkimusicmaker360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative", "2025-05-17", 0, 0, 0, 0],
5873                ["Mansion~Impossible", "z/games/mansionimpossible/game", "", "", "mansionimpossible360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Jobs Math Strategy", "2025-06-13", 0, 0, 0, 0],
5874                ["Mechanics", "z/games/mechanics/game", "", "", "mechanics360x100Min.webp", "Desktop", "Landscape Puzzle", "2024-11-07", 0, 0, 0, 0],
5875                ["Funny_Math_Challenge", "z/games/funnymathchallenge/game", "", "", "funnymathchallenge360x100Min.webp", "Desktop i!c!PadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Math Puzzle", "2024-12-07", 0, 0, 0, 0], //can't-type-on-ipad-old?
5876                ["Number_Match", "z/games/numbermatch/game", "", "", "numbermatch360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle Strategy", "2024-12-06", 0, 0, 0, 0],
5877                //["Code_Bunny", "z/games/codebunny/game", "", "", "codebunny360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2024-09-29", 0, 0, 0, 0],
5878                ["Straight_4", "z/games/straight4/game", "", "", "straight4360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape 2Player Puzzle", "2023-03-01", 0, 0, 0, 0],
5879                ["Lost_Signal", "z/games/lostsignal/game", "", "", "lostsignal180x50Min.webp", "Desktop", "Landscape 2Player Platform Puzzle Retro", "2024-09-30", 0, 0, 0, 0],
5880                ["Bip_And_Pip~Lava_Dungeon", "z/games/bipandpiplavadungeon/game", "", "", "bipandpiplavadungeon180x50Min.png", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure 2Player Platform Puzzle Retro", "2020-03-17", 0, 0, 0, 0],
5881                ["Bip_And_Pip~Toxic_Cavern", "z/games/bipandpiptoxiccavern/game", "", "", "bipandpiptoxiccavern180
5881x50Min.png", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure 2Player Platform Puzzle Retro", "2020-05-06", 0, 0, 0, 0],
5882                ["Bip_And_Pip~Laser_Lab", "z/games/bipandpiplaserlab/game", "", "", "bipandpiplaserlab180x50Min.png", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure 2Player Platform Puzzle Retro", "2020-09-22", 0, 0, 0, 0],
5883                ["Bip_And_Pip~Ice_Fortress", "z/games/bipandpipicefortress/game", "", "", "bipandpipicefortress180x50Min.png", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure 2Player Platform Puzzle Retro", "2021-02-04", 0, 0, 0, 0],
5884                ["In_The_Dog_House", "z/games/inthedoghouse/game", "", "", "inthedoghouse180x50Min.webp", "Desktop", "Landscape Puzzle", "2025-05-17", 0, 0, 0, 0],
5885                ["Sky_Bros~2_Player", "z/games/skybros/game", "", "", "skybros90x25Min.webp", "Desktop", "Landscape Action Jobs 2Player Platform", "2024-10-12", 0, 0, 0, 0],
5886                ["Mee_And_Yoo~2_Player", "z/games/meeandyoothecrystalcaves/game", "", "", "meeandyoothecrystalcaves90x25Min.png", "Desktop", "Landscape Action Adventure 2Player Platform Puzzle Retro", "2022-08-13", 0, 0, 0, 0],
5887                ["Reversi", "z/games/reversi/game", "", "", "reversi360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle 2Player", "2022-08-11", 0, 0, 0, 0],
5888                ["Paint_The_Numbers", "z/games/paintthenumbers/game", "", "", "paintthenumbers360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Math", "2023-07-02", 0, 0, 0, 0],
5889                ["Color_Maze_Puzzle", "z/games/colormazepuzzle/game", "", "", "colormazepuzzle360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2022-11-30", 0, 0, 0, 0],
5890                ["Animals_Coloring_Book", "z/games/animalscoloringbook/game", "", "", "animalscoloringbook360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative", "2023-07-02", 0, 0, 0, 0],
5891                ["Guess_Who?", "z/games/guesswho/game", "", "", "guesswho360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2023-07-02", 0, 0, 0, 0], //iphone-issues-if-you-rotate-screen
5892                ["Draggable_Puzzle", "z/games/draggablepuzzle/game", "", "", "draggablepuzzle360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle Word", "2023-02-15", 0, 0, 0, 0],
5893                ["Millionaire_Quiz", "z/games/millionairequiz/game", "", "", "millionairequiz360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Quiz", "2023-07-02", 0, 0, 0, 0],
5894                ["Jigsaw_Deluxe", "z/games/jigsawdeluxe/game", "", "", "jigsawdeluxe360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2023-07-02", 0, 0, 0, 0],
5895                ["Love_Cake", "z/games/lovecake/game", "", "", "lovecake120x33Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Adventure Platform Puzzle Retro", "2023-02-27", 0, 0, 0, 0], //android-users-get-keyb-controls :(
5896                //sch halloween...
5897                ["Numbskull", "z/games/numbskull/game", "", "", "numbskull360x100Min.png", "Desktop", "Landscape Halloween Puzzle Retro", "2024-10-12", 0, 0, 0, 0],
5898                ["Witch_Mirror", "z/games/witchmirror/game", "", "", "witchmirror120x33Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Halloween Platform Puzzle Retro", "2023-09-28", 0, 0, 0, 0],
5899                ["The_Neatness", "z/games/theneatness/game", "", "", "theneatness90x25Min.webp", "Desktop i!c!PadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Puzzle Halloween Retro", "2023-12-30", 0, 0, 0, 0],
5900                //
5901                ["Cute_Swap_Kitties", "z/games/cuteswapkitties/game", "", "", "cuteswapkitties360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2023-09-01", 0, 0, 0, 0],
5902                ["Color_Cannon", "z/games/colorcannon/game", "", "", "colorcannon360x100Min.png", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Portrait Ball Puzzle", "2023-01-07", 0, 0, 0, 0],
5903                ["Fire_Up", "z/games/fireup/game", "", "", "fireup360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Action Math Puzzle Shooting", "2021-11-23", 0, 0, 0, 0],
5904                ["Unblock_Puzzle", "z/games/unblockpuzzle/game", "", "", "unblockpuzzle360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2023-07-18", 0, 0, 0, 0], //not-playable-on-house-iphone
5905                ["Animal_Match", "z/games/animalmatch/game", "", "", "animalmatch360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2023-07-02", 0, 0, 0, 0],
5906                ["Bouncing_Balls", "z/games/bouncingballs/game", "", "", "bouncingballs360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Math", "2023-07-02", 0, 0, 0, 0],
5907                ["Mahjong_Deluxe", "z/games/mahjongdeluxe/game", "", "", "mahjongdeluxe360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2023-07-02", 0, 0, 0, 0],
5908                ["Robot_Start", "z/games/robotstart/game", "", "", "robotstart120x33Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle Retro", "2023-07-02", 0, 0, 0, 0],
5909                ["Click_2048", "z/games/click2048/game", "", "", "click2048360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Math Puzzle Strategy", "2023-09-02", 0, 0, 0, 0],
5910                ["Spacial_Blocks", "z/games/spacialblocks/game", "", "", "spacialblocks360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2023-09-02", 0, 0, 0, 0],
5911                ["Hexa_Jewels_Puzzle", "z/games/hexajewelspuzzle/game", "", "", "hexajewelspuzzle360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2023-06-19", 0, 0, 0, 0],
5912                ["Spot_The_Differences", "z/games/spotthedifferences/game", "", "", "spotthedifferences360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2023-06-19", 0, 0, 0, 0],
5913                ["Tile_Master_Match", "z/games/tilemastermatch/game", "", "", "tilemastermatch360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2023-06-19", 0, 0, 0, 0],
5914                ["Junior Chess", "z/games/juniorchess/game", "", "", "juniorchess360x100Min.jpg", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2017-06-26", 0, 0, 0, 0], ///needs-(js?)-rotate-fix-if-framed-for-iphone
5915                ["Park_Your_Car", "z/games/parkyourcar/game", "", "", "parkyourcar360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Motorsport", "2023-06-19", 0, 0, 0, 0],
5916                ["Playing_Kids_Jigsaw_Puzzle", "z/games/playingkidsjigsawpuzzle/game", "", "", "playingkidsjigsawpuzzle360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2023-06-19", 0, 0, 0, 0],
5917                ["Gravity_Soccer", "z/games/gravitysoccer/game", "", "", "gravitysoccer360x100Min.png", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Action Puzzle Sport", "2017-06-26", 0, 0, 0, 0],
5918                ["Find_Animals", "z/games/findanimals/game", "", "", "findanimals360x100Min.webp", "Desktop", "Landscape Puzzle", "2023-12-30", 0, 0, 0, 0],
5919                ["Fast_Dicewars", "z/games/fastdicewars/game", "", "", "fastdicewars360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle Strategy", "2024-03-30", 0, 0, 0, 0],
5920                ["Find_Objects", "z/games/findobjects/game", "", "", "findobjects360x100Min.webp", "Desktop", "Landscape Puzzle", "2023-12-30", 0, 0, 0, 0],
5921                ["Cute_Melon_My_Dream~Profession", "z/games/cutemelonmydreamprofession/game", "", "", "cutemelonmydreamprofession360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs", "2024-03-23", 0, 0, 0, 0],
5922                ["Mahjong_Solitaire~World_Tour", "z/games/mahjongsolitaireworldtour/game", "", "", "mahjongsolitaireworldtour360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2024-04-11", 0, 0, 0, 0],
5923                ["Kitty_Swap", "z/games/kittyswap/game", "", "", "kittyswap360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2023-06-19", 0, 0, 0, 0],
5924                ["Boxes_Wizard", "z/games/boxeswizard/game", "", "", "boxeswizard120x33Min.png", "Desktop T!t!ouch", "Landscape Platform Puzzle Retro", "2023-09-15", 0, 0, 0, 0],
5925                ["Boxes_Wizard_2", "z/games/boxeswizard2/game", "", "", "boxeswizard2120x33Min.webp", "Desktop T!t!ouch", "Landscape Platform Puzzle Retro", "2023-11-23", 0, 0, 0, 0],
5926                ["Chain_Colors", "z/games/chaincolors/game", "", "", "chaincolors360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2024-10-02", 0, 0, 0, 0],
5927                ["Seesaw_Balance", "z/games/seesawbalance/game", "", "", "seesawbalance360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2024-04-24", 0, 0, 0, 0],
5928                ["My_Cool_Grandma~Apple_Pie", "z/games/mycoolgrandmaapplepie/game", "", "", "mycoolgrandmaapplepie360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Food", "2023-05-13", 0, 0, 0, 0],
5929                ["My_Cool_Grandma~Nigiri_Sushi", "z/games/mycoolgrandmanigirisushi/game", "", "", "mycoolgrandmanigirisushi360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Food Puzzle", "2024-01-06", 0, 0, 0, 0],
5930                ["Paws_And_Claws", "z/games/pawsandclaws/game", "", "", "pawsandclaws90x25Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle Retro", "2023-09-10", 0, 0, 0, 0],
5931                ["Crazy_Piano", "z/games/crazypiano/game", "", "", "crazypiano360x100Min.webp", "Desktop i!c!PadOld i!c!PadNew i!c!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Creative", "2023-11-23", 0, 0, 0, 0],
5932                ["Creative Puzzle", "z/games/creativepuzzle/game", "", "", "creativepuzzle360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Puzzle", "2019-08-16", 0, 0, 0, 0],
5933                ["Plumber_Soda", "z/games/plumbersoda/game", "", "", "plumbersoda360x100Min.png", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Puzzle", "2023-03-01", 0, 0, 0, 0], //touch-loading-time
5934                ["Nine_Men's_Morris", "z/games/ninemensmorris/game", "", "", "ninemensmorris360x100Min.png", "Desktop", "Portrait 2Player Puzzle", "2021-03-16", 0, 0, 0, 0], //not-good-!t!-on-touch
5935                ["Dino_Mission", "z/games/dinomission/game", "", "", "dinomission360x100Min.png", "Desktop", "Landscape Action Adventure 2Player Platform Puzzle", "2020-10-13", 0, 0, 0, 0],
5936                ["Dino_Mission_2", "z/games/dinomission2/game", "", "", "dinomission2360x100Min.png", "Desktop", "Landscape Action Adventure 2Player Platform Puzzle", "2020-12-07", 0, 0, 0, 0],
5937                ["Puppy_Emergency", "z/games/puppyemergency/game", "", "", "puppyemergency360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Jobs", "2022-03-02", 0, 0, 0, 0],
5938                ["Funny_Pet_Rescue", "z/games/funnypetrescue/game", "", "", "funnypetrescue360x100Min.jpg", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Creative Dressup Jobs", "2019-12-31", 0, 0, 0, 0], //android-0.43-unexplained
5939                ["Funny_Rescue_Sumo", "z/games/funnyrescuesumo/game", "", "", "funnyrescuesumo360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup", "2023-01-18", 0, 0, 0, 0],
5940                ["Funny_Rescue~Zookeeper", "z/games/funnyrescuezookeeper/game", "", "", "funnyrescuezookeeper360x100Min.jpg", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid AndroidHigh", "Landscape Creative Dressup Jobs ", "2019-08-16", 0, 0, 0, 0], //GRP big-game-slow-loading-on-touch
5941                ["Funny_Rescue~Gardener", "z/games/funnyrescuegardener/game", "", "", "funnyrescuegardener360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs", "2020-05-19", 0, 0, 0, 0], //GRP
5942                ["Funny_Rescue~Carpenter", "z/games/funnyrescuecarpenter/game", "", "", "funnyrescuecarpenter360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs", "2020-06-04", 0, 0, 0, 0], //GRP 
5943                ["Number_Tiles", "z/games/tx-numbertiles/game", "", "", "tx-numbertiles360x100Min.gif", "Desktop", "Portrait Math Puzzle", "2023-09-19", 0, 0, 0, 0], //d:451-0.46-straight //SELF
5944                ["Monster_Match_Mania", "z/games/tx-monstermatchmania/game", "", "", "tx-monstermatchmania360x100Min.gif", "Desktop", "Landscape Puzzle", "2023-09-19", 0, 0, 0, 0], //d:780-0.43-straight //SELF
5945                ["Connect_Image", "z/games/tx-connectimage/game", "", "", "tx-connectimage360x100Min.gif", "Desktop", "Portrait Puzzle", "2023-09-23", 0, 0, 0, 0], //d:274-0.37-now-worthy //SELF
5946                ["Color_Animals", "z/games/tx-coloranimals/game", "", "", "tx-coloranimals360x100Min.gif", "Desktop", "Landscape Creative", "2023-09-19", 0, 0, 0, 0], //d:8730-0.40-now-worthy //SELF //POP
5947                ["Cook_Cook~Belgian_Waffles", "z/games/cookcookbelgianwaffles/game", "", "", "cookcookbelgianwaffles360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Food Jobs", "2020-05-20", 0, 0, 0, 0], //GRP
5948                ["Cook_Cook~Churros_Icecream", "z/games/cookcookchurrosicecream/game", "", "", "cookcookchurrosicecream360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Food", "2021-08-14", 
59480, 0, 0, 0], //GRP
5949                ["Cook_Cook~Cupcake", "z/games/cookcookcupcake/game", "", "", "cookcookcupcake360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Food Jobs", "2022-02-22", 0, 0, 0, 0], //GRP
5950                ["Cook_Cook~Epic_Burger", "z/games/cookcookepicburger/game", "", "", "cookcookepicburger360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Food Jobs", "2021-08-14", 0, 0, 0, 0], //GRP
5951                ["Cook_Cook~Fancy_Toast", "z/games/cookcookfancytoast/game", "", "", "cookcookfancytoast360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Food Jobs", "2021-09-02", 0, 0, 0, 0], //GRP
5952                ["Cook_Cook~Korean_Bibimbap", "z/games/cookcookkoreanbibimbap/game", "", "", "cookcookkoreanbibimbap360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Food Jobs", "2020-06-30", 0, 0, 0, 0], //GRP
5953                ["Cook_Cook~Mexican_Taco", "z/games/cookcookmexicantaco/game", "", "", "cookcookmexicantaco360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Food Jobs", "2022-05-20", 0, 0, 0, 0], //GRP
5954                ["Cook_Cook~Real_Hotdog", "z/games/cookcookrealhotdog/game", "", "", "cookcookrealhotdog360x100Min.png", "Desktop iPadOld iPadNew i!t-unexplained!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Food Jobs", "2020-11-05", 0, 0, 0, 0], //GRP
5955                ["Cook_Cook~Tasty_Pizza", "z/games/cookcooktastypizza/game", "", "", "cookcooktastypizza360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Food Jobs", "2021-09-11", 0, 0, 0, 0], //GRP
5956                ["Yummy_Candy_Factory", "z/games/yummycandyfactory/game", "", "", "yummycandyfactory360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Food Jobs", "2023-01-13", 153, 153, 153, 153], //GRP
5957                ["Yummy_Chocolate~Factory", "z/games/yummychocolatefactory/game", "", "", "yummychocolatefactory360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Jobs", "2022-04-01", 153, 153, 153, 153], //GRP
5958                ["Yummy_Ice_Cream_Factory", "z/games/yummyicecreamfactory/game", "", "", "yummyicecreamfactory360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Food Jobs", "2023-05-08", 153, 153, 153, 153], //GRP
5959                ["Tower_Boom", "z/games/towerboom/game", "", "", "towerboom360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2022-08-11", 0, 0, 0, 0],
5960                ["3D_Tangram", "z/games/3dtangram/game", "", "", "3dtangram360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait 3D Puzzle", "2023-06-23", 0, 0, 0, 0],
5961                ["Block_Jigsaw", "z/games/blockjigsaw/game", "", "", "blockjigsaw360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2023-06-23", 0, 0, 0, 0],
5962                ["Domino_Block", "z/games/dominoblock/game", "", "", "dominoblock360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle Strategy", "2023-03-01", 0, 0, 0, 0],
5963                ["Maze", "z/games/maze/game", "", "", "maze360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2023-03-01", 0, 0, 0, 0],
5964                ["Unicorn_Puzzle", "z/games/unicornpuzzle/game", "", "", "unicornpuzzle360x100Min.png", "Desktop", "Landscape Puzzle", "2022-12-03", 0, 0, 0, 0], //not-good-on-touch
5965                ["Sliding_Puzzle", "z/games/slidingpuzzle/game", "", "", "slidingpuzzle360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2023-06-23", 0, 0, 0, 0],
5966                ["Charley_Valley", "z/games/charleyvalley/game", "", "", "charleyvalley120x33Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle Retro", "2023-01-31", 0, 0, 0, 0], //issues with levels 18 and 19
5967                ["Line_Bright", "z/games/linebright/game", "", "", "linebright360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2023-02-15", 0, 0, 0, 0],
5968                //["Yacht_Dice_Game", "z/games/yachtdicegame/game", "", "", "yachtdicegame360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Math Strategy", "2023-03-01", 0, 0, 0, 0], //4-colors-music
5969                ["Classic_Backgammon", "z/games/classicbackgammon/game", "", "", "classicbackgammon360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape 2Player Strategy", "2023-03-01", 0, 0, 0, 0],
5970                ["Tri_Peaks_Solitaire", "z/games/tripeakssolitaire/game", "", "", "tripeakssolitaire360x100Min.png", "Desktop iPadOld iPadNew i!c!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2023-03-01", 0, 0, 0, 0], //iph:bottom-of-screen-tap-issues
5971                ["Laura_And_Lucas~Fire_And_Rescue", "z/games/lauraandlucasfireandrescue/game", "", "", "lauraandlucasfireandrescue360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Puzzle Jobs", "2020-11-08", 0, 0, 0, 0], //GRP
5972                ["Laura_And_Lucas~Art_Gallery", "z/games/lauraandlucasartgallery/game", "", "", "lauraandlucasartgallery360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Puzzle Jobs", "2020-08-27", 0, 0, 0, 0], //GRP
5973                ["Laura_And_Lucas~Ocean_Rescue", "z/games/lauraandlucasoceanrescue/game", "", "", "lauraandlucasoceanrescue360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Puzzle Jobs", "2020-07-16", 0, 0, 0, 0], //GRP
5974                ["Laura_And_Lucas~Emergency_Doctors", "z/games/lauraandlucasemergencydoctors/game", "", "", "lauraandlucasemergencydoctors360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Puzzle Jobs", "2021-01-27", 0, 0, 0, 0], //GRP
5975                ["Laura_And_Lucas~Chocolate_Factory", "z/games/lauraandlucaschocolatefactory/game", "", "", "lauraandlucaschocolatefactory360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Food Jobs Puzzle", "2020-06-18", 0, 0, 0, 0], //GRP
5976                ["Laura_And_Lucas~Carrot_Cake", "z/games/lauraandlucascarrotcake/game", "", "", "lauraandlucascarrotcake360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Food", "2020-03-20", 0, 0, 0, 0], //GRP
5977                ["Laura_And_Lucas~Black_Forest_Cake", "z/games/lauraandlucasblackforestcake/game", "", "", "lauraandlucasblackforestcake360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Food", "2020-03-20", 0, 0, 0, 0], //GRP
5978                ["Laura_And_Lucas~Red_Velvet_Cake", "z/games/lauraandlucasredvelvetcake/game", "", "", "lauraandlucasredvelvetcake360x100Min.png", "Desktop iPadOld iPadNew i!t-unexplained!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Food", "2020-04-01", 0, 0, 0, 0], //GRP
5979                ["Hefty Shaman", "z/games/heftyshaman/game", "", "", "heftyshaman360x100Min.png", "Desktop", "Landscape Action Platform Puzzle Retro", "2020-02-12", 0, 0, 0, 0],
5980                ["Jelly_Bounce", "z/games/jellybounce/game", "", "", "jellybounce360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Ball Puzzle", "2021-08-20", 0, 0, 0, 0],
5981                ["Axes_Merge", "z/games/axesmerge/game", "", "", "axesmerge360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2023-01-02", 0, 0, 0, 0],
5982                ["Funny_Kitty~Care", "z/games/funnykittycare/game", "", "", "funnykittycare360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs", "2022-09-20", 0, 0, 0, 0], //!nm-p!
5983                ["Funny_Puppy~Care", "z/games/funnypuppycare/game", "", "", "funnypuppycare360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs", "2022-10-07", 0, 0, 0, 0], //!nm-p!
5984                ["Happy_Animals~Airport", "z/games/happyanimalsairport/game", "", "", "happyanimalsairport360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Jobs", "2021-10-05", 0, 0, 0, 0], //GRP
5985                ["Happy_Animals~Camping", "z/games/happyanimalscamping/game", "", "", "happyanimalscamping360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative", "2021-08-14", 0, 0, 0, 0], //GRP
5986                ["Happy_Animals~Supermarket", "z/games/happyanimalssupermarket/game", "", "", "happyanimalssupermarket360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Food Jobs", "2021-08-18", 0, 0, 0, 0], //GRP
5987                ["Smiling_Glass", "z/games/smilingglass/game", "", "", "smilingglass360x100Min.png", "Desktop i!t!PadOld i!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2021-01-19", 0, 0, 0, 0],
5988                ["Smiling_Glass_2", "z/games/smilingglass2/game", "", "", "smilingglass2360x100Min.png", "Desktop i!t!PadOld i!t!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2022-07-19", 0, 0, 0, 0],
5989                ["Factory_Balls", "z/games/factoryballs/game", "", "", "factoryballs360x100Min.png", "Desktop", "Landscape Puzzle", "2021-03-27", 0, 0, 0, 0],
5990                ["Factory_Balls_2", "z/games/factoryballs2/game", "", "", "factoryballs2360x100Min.png", "Desktop", "Landscape Puzzle", "2021-03-27", 0, 0, 0, 0],
5991                ["Sorting_Balls", "z/games/sortingballs/game", "", "", "sortingballs360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Ball Puzzle", "2021-09-11", 0, 0, 0, 0],
5992                ["Blast Red", "z/games/blastred/game", "", "", "blastred360x100Min.png", "Desktop", "Portrait 3D Puzzle", "2020-07-03", 0, 0, 0, 0],
5993                ["Paint Blue", "z/games/paintblue/game", "", "", "paintblue360x100Min.png", "Desktop i!t!PadOld i!t!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2020-02-03", 0, 0, 0, 0],
5994                ["Drop_Da_Colors", "z/games/dropdacolors/game", "", "", "dropdacolors360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Ball Combat Puzzle", "2022-01-13", 0, 0, 0, 0],
5995                ["Crazy_Gravity", "z/games/crazygravity/game", "", "", "crazygravity360x100Min.png", "Desktop iPadOld i!t!PadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure Platform Puzzle", "2021-10-30", 0, 0, 0, 0],
5996                ["Stack Tower", "z/games/stacktower/game", "", "", "stacktower360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2020-01-14", 0, 0, 0, 0],
5997                ["Viking Workout", "z/games/vikingworkout/game", "", "", "vikingworkout360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Puzzle Shooting NFS", "2019-09-07", 0, 0, 0, 0],
5998                //REM-EJ
5999                ["Yeti_Sensation", "z/games/yetisensation/game", "", "", "yetisensation360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait 3D Action Sport Xmas", "2021-10-13", 16, 16, 16, 16],
6000                ["Jungle Slider", "z/games/jungleslider/game", "", "", "jungleslider360x100Min.jpg", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2019-08-25", 16, 16, 16, 16],
6001                ["Creative_Coloring", "z/games/creativecoloring/game", "", "", "creativecoloring360x100Min.png", "Desktop iPadOld iPadNew i!c!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Creative", "2021-10-12", 16, 16, 16, 16],
6002                ["Hop_Don't_Stop", "z/games/hopdontstop/game", "", "", "hopdontstop360x100Min.png", "Desktop", "Portrait Action", "2017-06-26", 16, 16, 16, 16], //no-good-on-touch
6003                ["Cookie Chomp!", "z/games/cookiechomp/game", "", "", "cookiechomp360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Food Puzzle", "2019-08-25", 16, 16, 16, 16],
6004                ["Princess Save The Planet", "z/games/princesssavetheplanet/game", "", "", "princesssavetheplanet360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup", "2020-08-18", 16, 16, 16, 16],
6005                ["Transforming Blockies", "z/games/transformingblockies/game", "z/games/transformingblockies/index-x", "", "transformingblockies360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2016-07-22", 16, 16, 16, 16], //ios-loader-issues
6006                ["Pixel_Color_Kids", "z/games/pixelcolorkids/game", "", "", "pixelcolorkids108x30Min.png", "Desktop i!t!PadOld i!t!PadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Retro", "2021-10-03", 16, 16, 16, 16],
6007                ["Lifespan Candle", "z/games/lifespancandle/game", "", "", "lifespancandle360x100Min.png", "Desktop", "Landscape Action Platform Puzzle Retro", "2020-12-05", 16, 16, 16, 16],
6008                ["Sling_Junior", "z/games/slingjunior/game", "", "", "slingjunior360x100Min.png", "Desktop", "Landscape Action Archivex", "2021-12-14", 16, 16, 16, 16],
6009                ["Snake_Falls", "z/games/snakefalls/game", "", "", "snakefalls360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Platform Puzzle", "2022-07-21", 16, 16, 16, 16],
6010                ["Fruit_Escape", "z/games/fruitescape/game", "", "", "fruitescape360x100Min.png", "Desktop", "Landscape Puzzle", "2020-01-18", 35, 35, 35, 35],
6011                ["Coco_Monkey", "z/games/cocomonkey/game", "", "", "cocomonkey180x50Min.png", "Desktop ", "Landscape Action Puzzle Platform", "2019-08-16", 35, 35, 35, 35],
6012                ["Karnalita", "z/games/karnalita/game", "", "", "karnalita360x100Min.png", "Desktop", "Landscape Platform Puzzle", "2022-01-13", 35, 35, 35, 35],
6013                ["Flo_And_Fraz", "z/games/floandfraz/game", "", "", "floandfraz360x100Min.png", "Desktop", "Landscape Action Adventure Combat 2Player Platform Puzzle", "2020-12-19", 35, 35, 35, 35],
6014                ["Bucket Ball", "z/games/bucketball/game", "", "", "bucketball360x100Min.jpg", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2019-09-07", 35, 35, 35, 35], //lcs-i!t!PadNew
6015                ["Monsterland~Junior_vs_Senior", "z/games/monsterlandjuniorvsseniorvol1/game", "", "", "monsterlandjuniorvsseniorvol1360x100Min.png", "Desktop", "Landscape Puzzle", "2021-01-19", 65, 999, 999, 999],
6016                ["Harry_The_Hamster", "z/games/harrythehamster/game", "", "", "harrythehamster360x100Min.png", "Desktop", "Landscape Puzzle", "2021-03-27", 85, 999, 999, 999],
6017                ["Harry_The_Hamster_2", "z/games/harrythehamster2/game", "", "", "harrythehamster2360x100Min.png", "Desktop", "Landscape Adventure Puzzle", "2021-03-27", 85, 999, 999, 999],
6018                ["Liquid_Measure", "z/games/liquidmeasure/game", "", "", "liquidmeasure360x100Min.png", "Desktop", "Landscape Math Puzzle", "2021-01-15", 9900, 999, 999, 999],
6019                ["Ickle_Fishy~Pirate_Invasion", "z/games/icklefishypirateinvasion/game", "", "", "icklefishypirateinvasion360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Action Adventure", "2021-02-11", 110, 110, 110, 110],
6020                ["Funny_Puppy~Dressup", "z/games/funnypuppydressup/game", "", "", "funnypuppydressup360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup", "2022-05-06", 110, 110, 110, 110],
6021                ["Funny_Kitty~Dressup", "z/games/funnykittydressup/game", "", "", "funnykittydressup360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup", "2022-03-18", 110, 110, 110, 110],
6022                ["Ditty_Kitty~Homeward_Bound", "z/games/dittykittyhomewardbound/game", "", "", "dittykittyhomewardbound360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Adventure", "2021-02-11", 9900, 999, 999, 999],
6023                ["Drop_Me", "z/games/dropme/game", "", "", "dropme360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2020-05-25", 99
602300, 999, 999, 999],
6024                ["Friv_Blocks", "z/games/frivblocks/game", "", "", "frivblocks360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape 3D Creative", "2022-04-15", 9900, 999, 999, 999], //d-cb:0.33 
6025                ["Sliding_Escape", "z/games/slidingescape/game", "", "", "slidingescape360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Action Puzzle", "2019-09-05", 45, 45, 45, 45], //iosn:0.34
6026                ["Amy_And_Ace~Bunker Breakout", "z/games/amyandacebunkerbreakout/game", "", "", "amyandacebunkerbreakout360x100Min.png", "Desktop", "Landscape Action Adventure Combat 2Player Platform Puzzle", "2020-10-13", 650, 51, 51, 51],
6027                ["Baboon_Buddies", "z/games/baboonbuddies/game", "", "", "baboonbuddies360x100Min.png", "Desktop", "Landscape Action Adventure Combat 2Player Platform Puzzle", "2020-10-23", 650, 51, 51, 51],
6028                ["Baboon_Buddies_2", "z/games/baboonbuddies2/game", "", "", "baboonbuddies2360x100Min.png", "Desktop", "Landscape Action Adventure Combat 2Player Platform Puzzle", "2020-12-09", 651, 52, 52, 52],
6029                ["Heatwave_Antarctica", "z/games/heatwaveantarctica/game", "", "", "heatwaveantarctica180x50Min.png", "Desktop", "Landscape Action Platform Puzzle Retro", "2019-08-16", 651, 651, 651, 651],
6030                ["Happy_Filled_Glass", "z/games/happyfilledglass/game", "", "", "happyfilledglass360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2022-12-31", 3010, 3010, 3010, 3010],
6031                ["Happy_Filled_Glass_2", "z/games/happyfilledglass2/game", "", "", "happyfilledglass2360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2023-01-18", 3011, 3011, 3011, 3011],
6032                ["Happy_Filled_Glass_3", "z/games/happyfilledglass3/game", "", "", "happyfilledglass3360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2023-03-30", 3012, 3012, 3012, 3012],
6033                ["Mike_And_Mia_Camping_Day", "z/games/mikeandmiacampingday/game", "", "", "mikeandmiacampingday360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Puzzle", "2024-01-22", 75, 75, 75, 75],
6034                ["Mike_And_Mia_Firefighters", "z/games/mikeandmiaplayfirefighter/game", "", "", "mikeandmiaplayfirefighter360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Jobs", "2023-06-04", 75, 75, 75, 75],
6035                ["Mike_And_Mia_Beach_Day", "z/games/mikeandmiabeachday/game", "", "", "mikeandmiabeachday360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup", "2023-05-08", 75, 75, 75, 75], //...crashed-ipad-on-overhead-driving-level //iph:0.38-overhead-driving-too-hard
6036                ["BFF_Art_Class", "z/games/bffartclass/game", "", "", "bffartclass360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Jobs", "2023-05-08", 267, 76, 76, 76], //GRP
6037                //desktop removed
6038                ["Flowers", "z/games/flowers/game", "", "", "flowers360x100Min.png", "D!t!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2023-03-01", 0, 0, 0, 0], //x-music
6039                ["Fish_World~Jigsaw", "z/games/fishworldjigsaw/game", "", "", "fishworldjigsaw360x100Min.png", "D!p!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2021-06-17", 110, 110, 110, 110],
6040                ["Swipe_Cubes", "z/games/swipecubes/game", "", "", "swipecubes360x100Min.png", "D!p!esktop i!tc!PadOld iPadNew i!tc!Phone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2021-09-02", 450, 450, 450, 450],
6041                ["Jungle_Jigsaw", "z/games/junglejigsaw/game", "", "", "junglejigsaw360x100Min.png", "D!p!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2021-08-07", 145, 145, 145, 145],
6042                ["Tricky_Shapes", "z/games/trickyshapes/game", "", "", "trickyshapes360x100Min.png", "D!p!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2021-04-28", 16, 16, 16, 16],
6043                ["Visual_Memory", "z/games/visualmemory/game", "", "", "visualmemory360x100Min.png", "D!t!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2023-06-23", 0, 0, 0, 0],
6044                ["Puzzle_Deluxe_Video_Games", "z/games/puzzledeluxevideogames/game", "", "", "puzzledeluxevideogames360x100Min.png", "D!t!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2023-06-19", 0, 0, 0, 0],
6045                ["Connect_Away", "z/games/connectaway/game", "", "", "connectaway360x100Min.png", "D!t!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2023-02-15", 0, 0, 0, 0],
6046                ["Extreme_Followers", "z/games/extremefollowers/game", "", "", "extremefollowers360x100Min.png", "D!t!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Strategy", "2023-06-19", 0, 0, 0, 0],
6047                ["Visual_Puzzle", "z/games/visualpuzzle/game", "", "", "visualpuzzle360x100Min.webp", "D!tp!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle", "2024-12-19", 0, 0, 0, 0],
6048                ["Twin_Trail", "z/games/twintrail/game", "", "", "twintrail120x33Min.webp", "D!tp!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle Retro", "2025-07-03", 0, 0, 0, 0],
6049                ["Spin Soccer 2", "z/games/spinsoccer2/game", "", "", "spinsoccer2360x100Min.png", "D!tp!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Action Ball Platform Puzzle Sport", "2020-05-03", 1770.5, 198.5, 191.5, 191.5], //GRP
6050            );
6051        }
6052
6053        //add en-only school games
6054        if ((isSchool && shortLang == "en") || testVer) {
6055            games.unshift(
6056                ["Friv_Typing", "z/games/frivtyping/game", "", "", "frivtyping360x100Min.webp", "Desktop", "Landscape Word", "2024-02-10", 16, 16, 16, 16],
6057                //["Theme_Wordsearch", "z/games/tx-themewordsearch/game", "", "", "tx-themewordsearch360x100Min.gif", "Desktop", "Portrait Puzzle Word", "2023-09-19", 16, 16, 16, 16], //d:175-0.45-straight
6058                //["Emoji_Quiz", "z/games/tx-emojiquiz/game", "", "", "tx-emojiquiz360x100Min.gif", "Desktop", "Portrait Puzzle Word", "2023-09-19", 16, 16, 16, 16], //d:1308-0.48-straight
6059                //
6060                ["Guess_Word", "z/games/guessword/game", "", "", "guessword360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle Word", "2023-02-15", 0.5, 0.5, 0.5, 0.5],
6061                ["Platformer~Toolkit", "z/games/platformertoolkit/game", "", "", "platformertoolkit360x100Min.png", "Desktop", "Landscape Creative Jobs Platform Puzzle", "2022-10-14", 0.5, 0.5, 0.5, 0.5],
6062                ["Guess_The_Word", "z/games/guesstheword/game", "", "", "guesstheword360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle Word", "2021-02-03", 0.5, 0.5, 0.5, 0.5],
6063                ["Guess_The_Word~Animals", "z/games/guessthewordanimals/game", "", "", "guessthewordanimals360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle Word", "2021-04-16", 0.5, 0.5, 0.5, 0.5],
6064                //["Guess_The_Word~Food", "z/games/guessthewordfood/game", "", "", "guessthewordfood360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Puzzle", "2021-02-03", 0.5, 0.5, 0.5, 0.5],
6065                //desktop removed...
6066                ["Circle_Word", "z/games/circleword/game", "", "", "circleword360x100Min.png", "D!t!esktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Puzzle Word", "2023-02-15", 0.5, 0.5, 0.5, 0.5],
6067                //
6068
6069            );
6070        }
6071
6072        if (testVer || userRandom >= 100) { //typically 5 / 95 //disabled
6073            games.unshift(
6074                //["XXX", "z/games/xxx/game", "", "", "ft-xxx.gif.png", "Desktop", "Landscape 3D Action Adventure Ball Combat Creative Dressup Food Jobs Math Motorsport 2Player Platform Puzzle Quiz Retro RPG Shooting Sport Strategy Word", "2023-06-28", 5000, 5000, 5000, 5000],
6075
6076                //["8_Ball_Pool", "z/games/mt-8ballpool/game", "", "", "mt-8ballpool.gif", "Desktop", "Landscape 3D Ball 2Player Sport", "2023-05-03", 5000, 5000, 5000, 5000],
6077                //["King_Of_Shapes", "z/games/ft.kingofshapes/game", "", "", "ft-kingofshapes.gif", "Desktop", "Landscape", "2023-08-01", 5000, 5000, 5000, 5000],
6078                //["XXX", "z/games/ft.xxx/game", "", "", "ft-xxx.gif", "Desktop", "Landscape", "2023-12-17", 5000, 5000, 5000, 5000],
6079            );
6080        }
6081
6082        if (testVer || (userRandom <= 0 && shortLang == "en")) { //disabled
6083            games.unshift(
6084                //["Ultra_Pixel~Burger", "z/games/mt-ultrapixelburger/game", "", "", "mt-ultrapixelburger.gif", "Desktop", "Landscape Food Strategy", "2023-05-03", 5000, 5000, 5000, 5000],
6085            );
6086        }
6087
6088        //add dressup - define dressup
6089        function addDressupGames() {
6090            games.unshift(
6091                ["Panda_Tropical_Wedding~Story", "z/games/pandatropicalweddingstory/game", "", "", "pandatropicalweddingstory360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-03-19", 5000, 5000, 5000, 5000],
6092                ["From_Sick_To Good_Princess", "z/games/fromsicktogoodprincesstreatment/game", "", "", "fromsicktogoodprincesstreatment360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup SUO NFS", "2020-03-08", 5000, 5000, 5000, 5000],
6093                ["Graduation~Hairstyles", "z/games/graduationhairstyles/game", "", "", "graduationhairstyles360x100Min.webp", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-03-18", 5000, 5000, 5000, 5000],
6094                ["BFFs_Candy~Fashion_Look", "z/games/bffscandyfashionlook/game", "", "", "bffscandyfashionlook360x100Min.webp", "Desktop i!c!PadOld i!c!PadNew i!c!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-03-25", 5000, 5000, 5000, 5000],
6095                ["Babycare_Jack", "z/games/babycarejack/game", "", "", "babycarejack360x100Min.png", "Desktop", "Landscape Dressup Food Jobs", "2023-08-08", 5000, 5000, 5000, 5000],
6096                ["Friv_House_Of_Fashion", "z/games/frivhouseoffashion/game", "", "", "frivhouseoffashion360x100Min.webp", "Desktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Creative Dressup NFS", "2024-07-12", 5000, 5000, 5000, 5000],
6097                ["TikTok_Trends_Colored_Demin", "z/games/tiktoktrendscoloreddenim/game", "", "", "tiktoktrendscoloreddenim360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative DressupNFS", "2025-01-27", 5000, 5000, 5000, 5000],
6098                ["TikTok_Trends_Boyfriend~Fashion", "z/games/tiktoktrendsboyfriendfashion/game", "", "", "tiktoktrendsboyfriendfashion360x100Min.webp", "Desktop iPadOld i!t!PadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup SUO NFS", "2024-09-14", 5000, 5000, 5000, 5000], //ipadnew unexplained
6099                ["Celebrity_Last_Fling~Before_The_Ring", "z/games/celebritylastflingbeforethering/game", "", "", "celebritylastflingbeforethering360x100Min.webp", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2025-02-26", 5000, 5000, 5000, 5000],
6100                ["Boyfriend Does My Makeup", "z/games/boyfrienddoesmymakeup/game", "", "", "boyfrienddoesmymakeup360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2020-05-17", 5000, 5000, 5000, 5000],
6101                ["Super_Barbara~Real_Haircuts", "z/games/superbarbararealhaircuts
6101/game", "", "", "superbarbararealhaircuts360x100Min.jpg", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2019-08-25", 5000, 5000, 5000, 5000],
6102                ["BFFs_Highschool_First_Date", "z/games/bffshighschoolfirstdatelook/game", "", "", "bffshighschoolfirstdatelook360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-03-19", 5000, 5000, 5000, 5000],
6103                ["Celebrity_Prom_Look", "z/games/celebritytrendypromlook/game", "", "", "celebritytrendypromlook360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-05-07", 5000, 5000, 5000, 5000],
6104                ["TikTok_Braided_Hairstyles", "z/games/tiktokbraidedhairstyles/game", "", "", "tiktokbraidedhairstyles360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-12-13", 5000, 5000, 5000, 5000],
6105                ["TikTok_Urban_Outfits", "z/games/tiktokurbanoutfits/game", "", "", "tiktokurbanoutfits360x100Min.webp", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-09-01", 5000, 5000, 5000, 5000],
6106                ["Harley_Learns~To_Love", "z/games/harleylearnstolove/game", "", "", "harleylearnstolove360x100Min.webp", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-08-03", 5000, 5000, 5000, 5000],
6107                ["Extreme_Makeover~Harley_Edition", "z/games/extrememakeoverharleyedition/game", "", "", "extrememakeoverharleyedition360x100Min.webp", "Desktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Creative Dressup NFS", "2024-03-18", 5000, 5000, 5000, 5000],
6108                ["Summer_Fire_Camp~Adventure", "z/games/summerfirecampadventure/game", "", "", "summerfirecampadventure360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Adventure Creative Dressup", "2024-03-19", 5000, 5000, 5000, 5000],
6109                ["Strawberella", "z/games/strawberella/game", "", "", "strawberella360x100Min.webp", "Desktop iPadOld iPadNew i!t!Phone A!c!ndroidLow A!c!ndroidMid A!c!ndroidHigh", "Landscape Creative Dressup NFS", "2024-03-04", 5000, 5000, 5000, 5000], //android-loading-times-and-very-small-detials-for-phones
6110                ["Princess Designer", "z/games/princessdesigner/game", "", "", "princessdesigner360x100Min.png", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid AndroidHigh", "Landscape Dressup NFS", "2020-03-08", 5000, 5000, 5000, 5000], //!p
6111                ["Funny_Kitty~Haircut", "z/games/funnykittyhaircut/game", "", "", "funnykittyhaircut360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs", "2022-09-10", 5000, 5000, 5000, 5000], //!p
6112                ["Annie_and_Eliza~Social Media", "z/games/annieandelizassocialmediaadventure/game", "", "", "annieandelizassocialmediaadventure360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup NFS", "2020-08-03", 5000, 5000, 5000, 5000],
6113                ["Ren_Fair_Fashion", "z/games/renfairfashion/game", "", "", "renfairfashion360x100Min.jpg", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup", "2019-08-25", 5000, 5000, 5000, 5000],
6114                ["Fashion_Designer~New_York", "z/games/fashiondesignernewyork/game", "", "", "fashiondesignernewyork360x100Min.png", "Desktop", "Landscape Creative Dressup Jobs NFS", "2023-08-08", 5000, 5000, 5000, 5000],
6115                ["Fashion_Designer~World_Tour", "z/games/fashiondesignerworldtour/game", "", "", "fashiondesignerworldtour360x100Min.png", "Desktop", "Landscape Creative Dressup Jobs NFS", "2023-08-08", 5000, 5000, 5000, 5000],
6116                //
6117                ["BFFs_Biker_Fashion", "z/games/bffsbikerfashion/game", "", "", "bffsbikerfashion360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-03-23", 5000, 5000, 5000, 5000],
6118                ["Funny_Ear_Surgery", "z/games/funnyearsurgery/game", "", "", "funnyearsurgery360x100Min.png", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Creative Dressup Jobs NFS", "2021-12-14", 5000, 5000, 5000, 5000], //!p
6119                ["Funny_Nose_Surgery", "z/games/funnynosesurgery/game", "", "", "funnynosesurgery360x100Min.png", "Desktop iPadOld i!t!PadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Creative Dressup Jobs NFS", "2019-12-20", 5000, 5000, 5000, 5000], //!p //GRP lcs-a-h:0.42-unexplained
6120                ["Body_Art_Studio", "z/games/bodyartstudio/game", "", "", "bodyartstudio360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs NFS", "2020-05-19", 5000, 5000, 5000, 5000],
6121                //
6122                ["Sara's_Black~Forest_Cake", "z/games/sarasblackforestcake/game", "", "", "sarasblackforestcake360x100Min.png", "Desktop", "Landscape Food Jobs Flash", "2023-09-10", 5000, 5000, 5000, 5000], //GRP
6123                ["Sara's_Chocolate~Mousse_Cake", "z/games/saraschocolatemoussecake/game", "", "", "saraschocolatemoussecake360x100Min.png", "Desktop", "Landscape Food Jobs Flash", "2023-09-10", 5000, 5000, 5000, 5000], //GRP
6124                ["Sara's_Peanut~Butter_Cookies", "z/games/saraspeanutbuttercookies/game", "", "", "saraspeanutbuttercookies360x100Min.png", "Desktop", "Landscape Food Jobs Flash", "2023-09-10", 5000, 5000, 5000, 5000], //GRP
6125                //
6126                ["Princess Cover Girl Makeover", "z/games/princesscovergirlmakeover/game", "", "", "princesscovergirlmakeover360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2019-08-25", 5000, 5000, 5000, 5000],
6127                ["Evil Queen Glass Skin Routine", "z/games/evilqueenglassskinroutine/game", "", "", "evilqueenglassskinroutine360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup NFS", "2020-03-08", 5000, 5000, 5000, 5000],
6128                ["Funny_Heroes~Emergency", "z/games/funnyheroesemergency/game", "", "", "funnyheroesemergency360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Dressup NFS", "2022-10-12", 5000, 5000, 5000, 5000],
6129                ["Funny_Zoo~Emergency", "z/games/funnyzooemergency/game", "", "", "funnyzooemergency360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Jobs", "2022-11-15", 5000, 5000, 5000, 5000],
6130                ["Princess_Lovely_Fashion", "z/games/princesslovelyfashion/game", "", "", "princesslovelyfashion360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2022-09-10", 5000, 5000, 5000, 5000], //needs-multiple-clicks
6131                ["Animal_Trends~Social Media", "z/games/animaltrendssocialmediaadventure/game", "", "", "animaltrendssocialmediaadventure360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup NFS", "2020-03-08", 5000, 5000, 5000, 5000],
6132                //dressup extra
6133                ["Baby_Animals~Daycare", "z/games/babyanimalsdaycare/game", "", "", "babyanimalsdaycare360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Jobs", "2022-04-21", 5000, 5000, 5000, 5000], //i!t!Phone
6134                ["Eliza's_Neon~Hairstyle", "z/games/elizasneonhairstyle/game", "", "", "elizasneonhairstyle360x100Min.jpg", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2019-08-25", 5000, 5000, 5000, 5000], //GRP
6135                ["Eliza's_Wedding~Planner", "z/games/elizasweddingplanner/game", "", "", "elizasweddingplanner360x100Min.jpg", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup NFS", "2020-05-08", 5000, 5000, 5000, 5000], //GRP //i!t!Phone
6136                ["Princess_Handmade~Shop", "z/games/princesshandmadeshop/game", "", "", "princesshandmadeshop360x100Min.png", "Desktop iPadOld iPadNew i!t!Phone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Jobs", "2019-08-25", 5000, 5000, 5000, 5000], //lcs-iph-0.36
6137                ["Dreamlike_Room", "z/games/dreamlikeroom/game", "", "", "dreamlikeroom360x100Min.png", "Desktop t!t!ouch", "Landscape Creative Dressup", "2022-08-01", 5000, 5000, 5000, 5000],
6138                //
6139                ["Celebrity_Wednesday~Addams_Style", "z/games/celebritywednesdayaddamsstyle/game", "", "", "celebritywednesdayaddamsstyle360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup Halloween NFS", "2024-09-21", 5000, 5000, 5000, 5000],
6140                ["TikTok_Floral_Trends", "z/games/tiktokfloraltrends/game", "", "", "tiktokfloraltrends360x100Min.webp", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-03-03", 5000, 5000, 5000, 5000],
6141                ["Princess_Superheroes", "z/games/princesssuperheroes/game", "", "", "princesssuperheroes360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2019-12-22", 5000, 5000, 5000, 5000],
6142                ["Mega_Dressup_Season's_Best", "z/games/megadressupseasonsbest/game", "", "", "megadressupseasonsbest360x100Min.webp", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-03-04", 5000, 5000, 5000, 5000],
6143                ["Color Me Princess", "z/games/colormeprincess/game", "", "", "colormeprincess360x100Min.png", "Desktop t!t!ouch", "Landscape Creative", "2020-05-06", 4888, 4888, 4888, 4888], //GRP - likely tricky on smaller screens
6144                ["Color Me Pets", "z/games/colormepets/game", "", "", "colormepets360x100Min.png", "Desktop iPadOld iPadNew i!tp!Phone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Creative", "2020-03-08", 4888, 4888, 4888, 4888], //GRP //too small for phones
6145                ["My_Trendy_Oversized~Outfits", "z/games/mytrendyoversizedoutfitsstreetstyle/game", "", "", "mytrendyoversizedoutfitsstreetstyle360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-05-01", 5000, 5000, 5000, 5000],
6146                ["My_Perfect_Year~Planner", "z/games/myperfectyearplanner/game", "", "", "myperfectyearplanner360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-03-11", 5000, 5000, 5000, 5000],
6147                ["Hot_vs_Cold~Social Media", "z/games/hotvscoldweathersocialmediaadventure/game", "", "", "hotvscoldweathersocialmediaadventure360x100Min.jpg", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup NFS", "2020-06-26", 5000, 5000, 5000, 5000],
6148                ["Cat_Girl_Trendy~Fashionista", "z/games/catgirltrendyfashionista/game", "", "", "catgirltrendyfashionista360x100Min.webp", "Desktop", "Landscape Creative Dressup NFS", "2024-04-11", 5000, 5000, 5000, 5000], //too-large-mb-for-mobiles
6149                ["Fashion_Repair", "z/games/fashionrepair/game", "", "", "fashionrepair360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Puzzle", "2024-02-21", 5000, 5000, 5000, 5000],
6150                ["Hayley_Tries~Heatless_Curls", "z/games/haleytriesheatlesscurls/game", "", "", "haleytr
6150iesheatlesscurls360x100Min.webp", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid AndroidHigh", "Landscape Creative Dressup NFS", "2024-08-03", 5000, 5000, 5000, 5000],
6151                ["Funny_Pet_Haircut", "z/games/funnypethaircut/game", "", "", "funnypethaircut360x100Min.png", "Desktop iPadOld iPadNew iPhone A!t!ndroidLow A!t!ndroidMid A!t!ndroidHigh", "Landscape Creative Dressup Jobs Puzzle", "2020-11-23", 5000, 5000, 5000, 5000], //android-unexplained-0.45
6152                ["Doc_Honeyberry~Puppy_Surgery", "z/games/dochoneyberrypuppysurgery/game", "", "", "dochoneyberrypuppysurgery360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Jobs", "2023-06-10", 5000, 5000, 5000, 5000],
6153                ["Doc_Honeyberry~Kitty_Surgery", "z/games/dochoneyberrykittysurgery/game", "", "", "dochoneyberrykittysurgery360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Dressup Jobs", "2023-05-26", 5000, 5000, 5000, 5000],
6154            );
6155            console.log("Dressup games added");
6156        }
6157
6158        var dressupGamesAdded = false;
6159
6160        if (dressupCounter > 3 || testVer) { //user-has-played-x-or-more-dressup-games
6161            addDressupGames();
6162            dressupGamesAdded = true;
6163        }
6164
6165        games.sort(sortAscendNum(popIndex));
6166
6167        //console.log("ppp games", JSON.stringify(games, null, 2));
6168
6169        shuffleArrayTopTen(games);
6170
6171        if (extraInvocation || frivExtraTimer > 0) {
6172
6173            concatExtraGames();
6174
6175            console.log("d.getDate(): " + d.getDate());
6176
6177            //friv extra timer
6178            var n = localStorage.getItem('frivExtraTimer');
6179            n = d.getDate();
6180            localStorage.setItem("frivExtraTimer", n);
6181            console.log("set frivExtraTimer: " + n);
6182        }
6183
6184        //add friv christmas card to very top
6185        if (specialDay == "dec21st" || specialDay == "dec22nd" || specialDay == "dec23rd" || specialDay == "christmasEve") { //card reads: "christmas is nearly here"
6186            games.unshift(
6187                ["Christmas_Card_For_You", "z/games/frivchristmascard/index", "", "", "frivchristmascard360x100Min.webp", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Landscape Xmas", "2023-12-17", 0, 0, 0, 0],
6188            );
6189        }
6190
6191        //add extra games (also handle logo music playing)
6192        var extraGamesCount = 0;
6193        var backgroundColoursCount = 1;
6194        var logoMusicPlaying = false;
6195        var logoAudio = new Audio();
6196        var xmasMusicArray = ["01", "02", "03", "04", "05", "06", "07", "08"];
6197        var xmasMusic = xmasMusicArray[Math.floor(Math.random() * xmasMusicArray.length)];
6198        var niceColours = ["red", "orange", "yellow", "cyan", "green", "lime", "blue", "navy", "purple", "magenta", "deepPink", "crimson", "dodgerBlue", "blueViolet", "violet", "teal", "darkTurquoise", "gold"];
6199        const frivSpeechSamples = ["gigi", "matilda", "rachel", "alice", "bill", "bob"];
6200        var frivSpeechRandomIndex;
6201
6202        function concatExtraGames() {
6203
6204            if (!testVer) { //shuffle extra games unless testing
6205                shuffleArray(extraGames);
6206            }
6207
6208            var newGames = extraGames.concat(games);
6209            games = newGames;
6210        }
6211
6212        function changeBackgroundColour() {
6213
6214            if (backgroundColoursCount % 10 == 0) { //every 10th selection, use default, and flash to indicate
6215                localStorage.setItem("niceColour1", "indigo");
6216                localStorage.setItem("niceColour2", "navy");
6217                if (isSchool) {
6218                    localStorage.setItem("niceColour1", "teal");
6219                    localStorage.setItem("niceColour2", "indigo");
6220                }
6221                if (specialPeriod == "christmas") {
6222                    localStorage.setItem("niceColour1", "maroon");
6223                    localStorage.setItem("niceColour2", "#400");
6224                }
6225                colourSelector.style.animation = "none";
6226                colourSelector.style.right = "0";
6227                colourSelector.offsetHeight; /* trigger reflow */
6228                colourSelector.style.animation = "brightFlash 0.2s";
6229            } else {
6230                localStorage.setItem("niceColour1", niceColours[Math.floor(Math.random() * niceColours.length)]);
6231                localStorage.setItem("niceColour2", niceColours[Math.floor(Math.random() * niceColours.length)]);
6232            }
6233            backgroundColoursCount++;
6234            displayBackgroundColours();
6235        }
6236
6237        function displayBackgroundColours() {
6238            document.body.style.background = "linear-gradient(" + localStorage.getItem('niceColour1') + ", " + localStorage.getItem('niceColour2') + ")";
6239            colourSelector.style.background = "linear-gradient(" + localStorage.getItem('niceColour1') + ", " + localStorage.getItem('niceColour2') + ")";
6240        }
6241
6242        displayBackgroundColours(); //on load
6243
6244
6245        var clickHack = false;
6246
6247        function addExtraGames() {
6248
6249            if (logoMusicPlaying == false) { //setup audio
6250
6251                switch (specialPeriod) {
6252                    case "christmas":
6253                        logoAudio = new Audio("z/assets/extras/xmasMusic" + xmasMusic + ".mp3");
6254                        break;
6255                    case "halloween":
6256                        logoAudio = new Audio("z/assets/extras/halloweenMusic.mp3");
6257                        document.body.style.background = "linear-gradient(#002, black, #005, black, #003)";
6258                        break;
6259                    default:
6260                        logoAudio = new Audio("z/assets/extras/logoMusic.mp3");
6261                }
6262
6263                //if (Math.random() > 0.00) {
6264                //    logoAudio = new Audio("z/assets/extras/logoMusicGoldenTribute8bit.mp3");
6265                //}
6266
6267                if (specialDay == "aprilFoolsDay") {
6268                    logoAudio = new Audio("z/assets/extras/logoMusicAprilFoolsDay.mp3");
6269                }
6270
6271                logoAudio.loop = true;
6272                logoAudio.play();
6273                funnyVideoContainer.pause();
6274                storyAudio.pause();
6275                pauseChiptune();
6276                logoMusicPlaying = true;
6277                gtag('event', 'Logo Tune', {
6278                    'event_category': 'Bonus Content',
6279                    'event_label': 'Easter Egg'
6280                });
6281            }
6282
6283            extraGamesCount++;
6284
6285            if (extraGamesCount != 10) {
6286                frivSpeechRandomIndex = Math.floor(Math.random() * frivSpeechSamples.length);
6287                playSound("friv-" + frivSpeechSamples[frivSpeechRandomIndex]);
6288            } else {
6289
6290                concatExtraGames();
6291
6292                playSound('coinin');
6293                //logo.style.cursor = "default";
6294
6295                displayGames("*", "*");
6296
6297                clickHack = true;
6298                initMoreGames();
6299                //gamesBlock.scrollIntoView({ //fails (must avoid false ad / game clicks)
6300                //    block: 'start',
6301                //    behavior: 'smooth'
6302                //});
6303                gtag('event', 'Extra Games', {
6304                    'event_category': 'Bonus Content',
6305                    'event_label': 'Easter Egg'
6306                });
6307            }
6308
6309        }
6310
6311        //logo spinner sound
6312        const logoSpinner = document.getElementById('logoSpinner');
6313
6314
6315
6316        //add any test games
6317        if (ref.indexOf("test") > -1) {
6318            games.unshift(
6319                ["Doctor Teeth 2", "z/games/doctorteeth2/game", "", "", "doctorteeth2360x100Min.png", "Desktop iPadOld iPadNew iPhone AndroidLow AndroidMid AndroidHigh", "Portrait Jobs Test", "2020-02-12", 0, 0, 0, 0],
6320            );
6321
6322            gtag('event', 'Test Games Shown', {
6323                'event_category': 'Navigation',
6324                'event_label': 'Debugging'
6325            });
6326        }
6327
6328
6329        //SEARCH
6330        ////////
6331
6332        //for touch devices, add in landscape and portrait. on desktop use space for others
6333        if (os == "Desktop") {
6334            landscapeRemove.style.display = "none";
6335            portraitRemove.style.display = "none";
6336        } else {
6337            jobsRemove.style.display = "none";
6338            platformRemove.style.display = "none";
6339        }
6340
6341
6342        function searchBoxRemove() {
6343            searchBoxContainer.style.display = "none";
6344            logo.scrollIntoView({
6345                block: 'end',
6346                behavior: 'smooth'
6347            });
6348        }
6349
6350        //added in .toString().toLowerCase() to sort function to allow for accurate alphabetical sorting. Numerical sorting untested.
6351
6352        function sortAscend(index) {
6353            return function (a, b) {
6354                if (a[index] === b[index]) {
6355                    return 0;
6356                } else {
6357                    return (a[index].toString().toLowerCase() < b[index].toString().toLowerCase()) ? -1 : 1;
6358                }
6359            }
6360        }
6361
6362        function sortDecend(index) {
6363            return function (a, b) {
6364                if (a[index] === b[index]) {
6365                    return 0;
6366                } else {
6367                    return (a[index].toString().toLowerCase() > b[index].toString().toLowerCase()) ? -1 : 1;
6368                }
6369            }
6370        }
6371
6372        function sortAscendNum(index) {
6373            return function (a, b) {
6374                if (a[index] === b[index]) {
6375                    return 0;
6376                } else {
6377                    return a[index] - b[index];
6378                }
6379            }
6380        }
6381
6382        function sortGamesAlpha() {
6383            games.sort(sortAscend(0));
6384            displayGames("*", "*");
6385            searchBoxRemove();
6386            headerSearchResult.innerHTML = "Games sorted alphabetically A-Z.";
6387        }
6388
6389        function sortGamesPopularity() {
6390            games.sort(sortAscendNum(popIndex));
6391            displayGames("*", "*");
6392            searchBoxRemove();
6393            headerSearchResult.innerHTML = "Games sorted by popularity. Top first.";
6394        }
6395
6396        function sortGamesDate() {
6397            games.sort(sortDecend(7));
6398            displayGames("*", "*");
6399            searchBoxRemove();
6400            headerSearchResult.innerHTML = "Games sorted by date. Newest first.";
6401        }
6402
6403
6404
6405
6406
6407
6408        //BREAKPOINT
6409        ////////////
6410        if (breakPoint) {
6411            gtag('event', 'Breakpoint 06', {
6412                'event_category': 'Debug',
6413                'event_label': 'Breakpoints'
6414            });
6415        }
6416        ////////////
6417        ////////////
6418
6419    </script>
6419
6420
6421    <!-- deliberate code splitting for fid -->
6422
6423    
6423<script>
6424        // output games
6425
6426        var firstDisplay = true;
6427
6428        function displayGames(genre, firstLetter) {
6429
6430            //console.log("ppp displaying games");    
6431
6432            //temp analytics
6433            if (genre != "*") {
6434
6435                gtag('event', ("Category search: " + genre), {
6436                    'event_category': 'Navigation',
6437                    'event_label': 'Game category search type'
6438                });
6439
6440                //console.log("Analytics " + genre);
6441            }
6442
6443            var gamesOutputText = "";
6444            var orientationDiv = "";
6445            var gamesCounter = 0;
6446            var passedVars = deviceCategory;
6447            var gameThumbLoadingNumber = 0;
6448            var crazyArrangement = Math.random(); //easter egg
6449            var sitemapText = "";
6450            var fullGamesListText = "";
6451            var gamesInUseText = "";
6452
6453            if (genre == "Dressup" && dressupGamesAdded == false) {
6454                addDressupGames();
6455                games.sort(sortAscend(0));
6456            }
6457
6458
6459            for (var i = 0; i < games.length; i++) {
6460
6461                //visual check of normalised array
6462                //console.log(games[i].length + " | " + games[i]); 
6463
6464                if (games[i].length != 12) {
6465                    console.log("ERROR! Check games array! | " + games[i]);
6466                }
6467
6468                if (gameThumbLoadingNumber < 7) {
6469                    gameThumbLoadingNumber++
6470                } else {
6471                    gameThumbLoadingNumber = 1;
6472                }
6473
6474                if (games[i][6].indexOf("FGO") == -1 || (games[i][6].indexOf("FGO") > -1 && gfxPerformanceCategory >= 3)) {
6475
6476                    if (games[i][6].indexOf("SUO") == -1 || gamePlays > 6 || testVer) {
6477
6478                        if (!isSchool || games[i][6].indexOf("NFS") == -1) { //test whether games can be shown in friv4school
6479
6480                            var typeOfBorder = "gameThumbContainer";
6481
6482                            if (isSchool && (games[i][6].indexOf("Puzzle") > -1 || games[i][6].indexOf("Math") > -1 || games[i][6].indexOf("Word") > -1 || games[i][6].indexOf("Quiz") > -1)) {
6483                                typeOfBorder = "gameThumbContainerPuzzle";
6484                            }
6485
6486                            if (games[i][6].indexOf("Extra") > -1) {
6487                                typeOfBorder = "gameThumbContainerExtra";
6488                            }
6489
6490                            if (games[i][6].indexOf("Test") > -1) {
6491                                typeOfBorder = "gameThumbContainerTest";
6492                            }
6493
6494                            orientationDiv = "";
6495                            if (touchDevice) { //place orientation thumbnails over game tiles
6496                                orientationDiv = "<div class=gameThumbOrientationLandscape></div>";
6497                                if (games[i][6].indexOf("Portrait") > -1) {
6498                                    orientationDiv = "<div class=gameThumbOrientationPortrait></div>";
6499                                }
6500                            }
6501
6502                            if (games[i][6].indexOf("New") > -1 && games[i][6].indexOf("Newish") == -1) { //'new' games, not 'newish'
6503                                orientationDiv += "<div class=newIcon></div>";
6504                            }
6505
6506                            if (games[i][6].indexOf("Xmas") > -1 && specialPeriod == "christmas") {
6507                                orientationDiv += "<div class=xmasIcon></div>";
6508                            }
6509
6510                            if ((games[i][6].indexOf("Halloween") > -1) && specialPeriod == "halloween") {
6511                                orientationDiv += "<div class=halloweenIcon></div>";
6512                            }
6513
6514                            if (!resourcesAccessible && Math.random() > 0.6 && !isSchool) {
6515                                games[i][0] = games[i][0].substring(0, 2) + "&" + Math.floor(100 + Math.random() * 900) + "x_Ad_Blocker?";
6516                                games[i][4] = "glitch90x25Min.png";
6517                            }
6518
6519                            var secondImgClass = ""; //apply pixelated class to smaller images
6520                            if (games[i][4].indexOf("72x20") > -1 || games[i][4].indexOf("90x25") >
6520 -1 || games[i][4].indexOf("120x33") > -1 || games[i][4].indexOf("108x30") > -1 || games[i][4].indexOf("144x40") > -1 || games[i][4].indexOf("180x50") > -1 || games[i][4].indexOf("216x60") > -1 || games[i][4].indexOf("252x70") > -1) {
6521                                secondImgClass = "pixelated";
6522                            }
6523
6524                            if (games[i][4].indexOf("cuteremake") > -1) {
6525
6526                                if (specialPeriod == "christmas" && Math.random() > 0.7) {
6527                                    games[i][4] = games[i][4].replace("Z", "Xmas"); //third-of-the-time-at-xmas-show-xmas-hat
6528                                }
6529                                games[i][4] = games[i][4].replace("Z", Math.floor(Math.random() * 10)); //random number 0 -9                                
6530                            }
6531
6532                            if (games[i][0].indexOf("Christmas_Clicker") > -1) {
6533                                secondImgClass += "pulsateIcon";
6534                            }
6535
6536                            var gamePath = games[i][1];
6537                            if ((deviceCategory == "iPad" || deviceCategory == "iPadNew" || deviceCategory == "iPhone") && games[i][2] != "") { //where there exists an alternative loader for iPad / iPhone then use it
6538                                gamePath = games[i][2];
6539                            };
6540                            if (deviceCategory == "iPhone" && games[i][3] != "") { //further exception for iPhone
6541                                gamePath = games[i][3];
6542                            };
6543
6544                            games[i][0] = games[i][0].replace(/~/g, "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "); //to assist with line-break formatting
6545                            games[i][0] = games[i][0].replace(/_/g, "&nbsp;"); //prevent line breaking within important names
6546
6547                            if (games[i][5].indexOf(deviceCategory) > -1 || testVer) {
6548                                if ((games[i][6].indexOf(genre) > -1) || genre == "*") { //test for genre
6549                                    if (((games[i][0].slice(0, 1) == firstLetter) || firstLetter == "*") || (Number.isInteger(parseInt(games[i][0].slice(0, 1))) && firstLetter == "0")) { //test for first letter
6550                                        gamesCounter++;
6551                                        gamesOutputText += "<div class='" + typeOfBorder + " gameThumbLoading" + gameThumbLoadingNumber + "'><div class=gameThumbShine></div>" + orientationDiv + "<a href=" + gamePath + ".html><img width='360' height='100' loading='lazy' class='gameThumb " + secondImgClass + "' src=z/thumbs/" + games[i][4] + " alt=" + games[i][0].replace(/ /g, '-') + " ></a><div class='gameTitle notranslate'>" + games[i][0].replace("Moto&nbsp;X3M&nbsp;1", "Moto&nbsp;X3M") + "</div></div>";
6552
6553
6554                                    }
6555                                }
6556                            }
6557
6558                        }
6559                    }
6560
6561                } //fast gfx
6562
6563                //watch for games/game.html error
6564                //sitemapText += "<url><loc>https://www.friv.com/z/games/" + games[i][1] + "/game.html</loc></url>\n";
6565                //fullGamesListText += '<li><a href="/z/games/'+games[i][1]+'/game.html">'+games[i][0]+' Friv Game</a></li>\n';
6566                //gamesInUseText += games[i][0]+"<br>";
6567
6568            }
6569
6570            //console.log(sitemapText);
6571            //console.log(fullGamesListText);
6572            //console.log(gamesInUseText);
6573
6574            //xyx
6575            //logoContainer.style.marginBottom = "3vh"; // having displayed games, rest of page can come up (prevents seeing other content before games are displayed)
6576
6577            //promote friv4school.com
6578
6579            if (!isSchool && pageViews > 20 && firstDisplay) {
6580                if (gameThumbLoadingNumber < 7) {
6581                    gameThumbLoadingNumber++
6582                } else {
6583                    gameThumbLoadingNumber = 1;
6584                }
6585                gamesOutputText += "<div class='gameThumbContainer gameThumbLoading" + gameThumbLoadingNumber + "'><div class=gameThumbShine></div><a href=https://www.friv4school.com/><img width='360' height='100' loading='lazy' class='gameThumb pulsateIcon' src=z/thumbs/fr
6585iv4SchoolPromo360x100Min.png alt='Friv4School'></a><div class=gameTitle>Friv4School.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; More&nbsp;Games&nbsp;No&nbsp;Ads!</div></div>";
6586            }
6587
6588            //pico8 test ALSO appears at the end of every search
6589            if (!touchDevice && false) { //disabled for now
6590                if (gameThumbLoadingNumber < 7) {
6591                    gameThumbLoadingNumber++
6592                } else {
6593                    gameThumbLoadingNumber = 1;
6594                }
6595                gamesOutputText += "<div class='" + typeOfBorder + " gameThumbLoading" + gameThumbLoadingNumber + "'><div class=gameThumbShine></div><div class=newIcon></div><a href=z/games/randomPico.html><img width='360' height='100' loading='lazy' class='gameThumb' src=z/thumbs/zzz-pico8-green.png alt=zzz></a><div class='gameTitle notranslate'>New Random <mark>2-PLAYER</mark> Game!</div></div>";
6596                //gamesOutputText += "<div class='" + typeOfBorder + " gameThumbLoading" + gameThumbLoadingNumber + "'><div class=gameThumbShine></div><div class=newIcon></div><a href=z/games/randomTIC-80.html><img width='360' height='100' loading='lazy' class='gameThumb' src=z/thumbs/zzz-pico8-blue.png alt=zzz></a><div class='gameTitle notranslate'>New Random <mark>2-PLAYER</mark> Game!</div></div>";
6597
6598            }
6599
6600            var gameText = "games";
6601            if (gamesCounter == 1) {
6602                gameText = "game";
6603            }
6604
6605            if (firstLetter == "0") {
6606                firstLetter = "0-9";
6607            }
6608
6609            //searchResultText.innerText = gamesCounter + " games found."
6610
6611            if (!firstDisplay) {
6612                if (gamesCounter > 0) {
6613
6614                    searchBoxRemove();
6615
6616                    if (genre == "*" && firstLetter != "*") { //first letter search
6617                        searchResultText.innerHTML = headerSearchResult.innerHTML = gamesCounter + " " + gameText + " found starting with " + firstLetter + ".";
6618                    }
6619                    if (genre != "*" && firstLetter == "*") { //genre search
6620                        console.log("Chosen category: " + genre);
6621                        if (genre == "New") {
6622                            genre += " / recently added";
6623                        }
6624                        if (genre == "2Player") {
6625                            genre = "compatible 2 Player";
6626                        }
6627                        if (genre == "Math") {
6628                            genre = "Math and number";
6629                        }
6630                        if (genre == "Xmas") {
6631                            genre = "Christmas / Winter";
6632                        }
6633                        searchResultText.innerHTML = headerSearchResult.innerHTML = gamesCounter + " " + genre.replace("Math", "Math / Number / Logic").replace("Word", "Word / Language") + " " + gameText + " found.";
6634                    }
6635                    if (genre == "*" && firstLetter == "*") { //all games search
6636                        searchResultText.innerHTML = headerSearchResult.innerHTML = "All games A-Z: " + gamesCounter + ".";
6637                    }
6638                } else {
6639                    searchResultText.innerHTML = headerSearchResult.innerHTML = "Sorry. No games found. Please search again."
6640                }
6641            }
6642
6643            firstDisplay = false;
6644
6645            gamesOutputText += "<div id=secretButton2></div>";
6646
6647            if (!touchDevice) {
6648                gamesOutputText += "<br><div id=secretButton></div>";
6649            }
6650
6651            gamesBlock.innerHTML = gamesOutputText;
6652            gamesBlock.style.marginBottom = "2vh"; //formerly 20vh
6653
6654            if (!touchDevice) {
6655                secretButton.addEventListener("click", showCylinders);
6656            }
6657
6658            secretButton2.addEventListener("click", showWireframe);
6659
6660
6661
6662
6663            //BREAKPOINT
6664            ////////////
6665            if (breakPoint) {
6666                gtag('event', 'Breakpoint 07', {
6667                    'event_category': 'Debug',
6668                    'event_label': 'Breakpoints'
6669                });
6670            }
6671            ////////////
6672            ////////////
6673
6674
6675
6676
6677            //var allGames = document.getElementsByClassName("gameThumb"); //last game output / lastgame
6678            logo.addEventListener("click", addExtraGames);
6679
6680            //console.log("ppp sorting alpha");
6681
6682            games.sort(sortAscend(0)); //always sort games alphabetically (executed here, applies always, but deliberately comes too late to affect first display)
6683
6684            //console.log("ppp games", JSON.stringify(games, null, 2));
6685
6686            //once games have been output, programatically apply animations where necessary
6687            var gameTitleElements = document.getElementsByClassName('gameTitle');
6688            for (var i = 0, ii = gameTitleElements.length; i < ii; i++) {
6689                if (deviceSpeed == "fst") { //for faster machines
6690                    gameTitleElements[i].style.animation = "gameTitle 0.2s " + (1 + (i / 100)) + "s forwards";
6691                } else { //for slower machines
6692                    gameTitleElements[i].style.top = "3%";
6693                }
6694            }
6695
6696            if (deviceSpeed == "fst") { //demanding animations 
6697                var gameThumbShineElements = document.getElementsByClassName('gameThumbShine');
6698                for (var i = 0, ii = gameThumbShineElements.length; i < ii; i += 5) { //7th of thumbs to reduce lag
6699                    gameThumbShineElements[i].style.animation = "gameThumbShine 15s " + (10 + (i / 2)) + "s infinite";
6700                }
6701            }
6702
6703            //if (!touchDevice && specialPeriod != "christmas") {
6704            //    logoSpinner.style.display = "block";
6705            //}
6706
6707            if (specialPeriod == "christmas") {
6708                logoSpinner.style.display = "none";
6709            }
6710
6711            var gameThumbContainerElements = document.getElementsByClassName('gameThumbContainer');
6712            for (var i = 0, ii = gameThumbContainerElements.length; i < ii; i++) { //try i+=5 etc. to reduce lag
6713                //for (var i = 0, ii = Math.floor(gameThumbContainerElements.length/7); i < ii; i++) {   //7th of thumbs to reduce lag
6714                if (!touchDevice && deviceSpeed == "fst") { //more demanding animations
6715
6716                    gameThumbContainerElements[i].style.animation = "brightFlash 0.2s " + (15 + (Math.random() * 60)) + "s steps(1)"; //one minute of flashes
6717                    //just for fun, show games in crazy arrangement
6718                    if (pageViews == 60) {
6719                        gameThumbContainerElements[i].style.transform = "rotate(" + (Math.random() * 360) + "deg)";
6720                    }
6721
6722                } else { //simpler animations
6723                    gameThumbContainerElements[i].style.animation = "vshake .5s " + (((i + 1) * 7) + 8) + "s cubic-bezier(0.36, 0.07, 0.19, 0.97)";
6724                }
6725            }
6726
6727
6728            //show games
6729
6730
6731            setTimeout(function () {
6732                gamesBlock.style.opacity = "1";
6733            }, displayGamesTimer);
6734
6735            displayGamesTimer = 0; //reset for all further actions
6736
6737        } //end displayGames
6738
6739        function showCylinders() {
6740            gtag('event', 'Cylinders', {
6741                'event_category': 'Bonus Content',
6742                'event_label': 'Easter Egg'
6743            });
6744
6745            window.open("z/eastereggs/cylinders/index.html");
6746        }
6747
6748        function showWireframe() {
6749            gtag('event', 'Wireframe', {
6750                'event_category': 'Bonus Content',
6751                'event_label': 'Easter Egg'
6752            });
6753
6754            window.open("z/eastereggs/wireframe.html");
6755        }
6756
6757        //apply additional animations for non-touch users
6758        if (!touchDevice) {
6759            var css = ".gameThumb:hover{width:110%;height:110%;}.gameThumbContainer:hover{filter:brightness(1.5);}.gameThumbContainerPuzzle:hover{filter:brightness(1.5);}.gameThumbContainerExtra:hover{filter:brightness(1.5);}.gameThumbContainerTest:hover{filter:brightness(1.5);}.searchLetter:hover,.searchLetterAll:hover{filter:hue-rotate(150deg)};";
6760            var style = document.createElement('style');
6761            if (style.styleSheet) {
6762                style.styleSheet.cssText = css;
6763            } else {
6764                style.appendChild(document.createTextNode(css));
6765            }
6766            document.getElementsByTagName('head')[0].appendChild(style);
6767        }
6768
6769        document.getElementById("copyrightYear").innerHTML = "- " + (ne
6769w Date).getFullYear();
6770
6771        //lang = "es-es";
6772
6773        if (lang.indexOf("en") > -1) {
6774            frivolousFactEmoji.style.display = "block";
6775            frivolousFact.style.display = "block";
6776            frivolousFactBottomBar.style.display = "block";
6777
6778            //dailyGIFEmoji.style.display = "none";
6779            //dailyGIF.style.display = "none";
6780            //dailyGIFBottomBar.style.display = "none";
6781
6782            famousQuoteEmoji.style.display = "block";
6783            famousQuote.style.display = "block";
6784            famousQuoteBottomBar.style.display = "block";
6785            jokeEmoji.style.display = "block";
6786            jokeA.style.display = "block";
6787            jokeB.style.display = "block";
6788            riddleEmoji.style.display = "block";
6789            riddleA.style.display = "block";
6790            riddleB.style.display = "block";
6791            riddleChangeDifficulty.style.display = "block";
6792            limerickEmoji.style.display = "block";
6793            limerickA.style.display = "block";
6794            tongueTwisterEmoji.style.display = "block";
6795            tongueTwisterA.style.display = "block";
6796            storyEmoji.style.display = "block";
6797            storyA.style.display = "block";
6798            //shareMessage.innerHTML = "The more people who play on Friv, the more great games we can add. Right now there are <span id=visitorNumbers>over 100</span>
6798 unique users on Friv. Thank you for helping to spread the word!";
6799        }
6800
6801
6802
6803
6804        //BREAKPOINT
6805        ////////////
6806        if (breakPoint) {
6807            gtag('event', 'Breakpoint 08', {
6808                'event_category': 'Debug',
6809                'event_label': 'Breakpoints'
6810            });
6811        }
6812        ////////////
6813        ////////////
6814
6815
6816
6817
6818
6819
6820        //SEARCH
6821        //////////////////////////////////////////////
6822
6823        function showSearchBox() {
6824            searchBoxContainer.style.display = "block";
6825            headerSearchResult.style.display = "block";
6826            searchResultText.innerHTML = "&nbsp;"
6827            gtag('event', 'Search', {
6828                'event_category': 'Navigation',
6829                'event_label': 'Search Box Shown'
6830            });
6831        }
6832
6833        //HIDDEN FUN STUFF
6834        //////////////////////////////////////////////
6835
6836        function loadDropGfx() {
6837            path = "z/assets/extras/"
6838            if (Math.random() > 0.5) {
6839                dropGfx.style.backgroundImage = "url('" + path + "dropGfxDoughnutMin.svg')";
6840            } else {
6841                dropGfx.style.backgroundImage = "url('" + path + "dropGfxBirdieMin.svg')";
6842            }
6843            setTimeout(function () {
6844                playSound('crashdrop')
6845            }, 8000);
6846
6847            dropGfx.style.animation = "dropGfx 2.5s 5s ease-in forwards"; //provide delay for loading
6848
6849            gamesBlock.style.animation = "shake 0.5s 8.3s cubic-bezier(0.36, 0.07, 0.19, 0.97), shake 0.5s 8.6s cubic-bezier(0.36, 0.07, 0.19, 0.97), shake 0.5s 8.9s cubic-bezier(0.36, 0.07, 0.19, 0.97)";
6850            frivDaily.style.animation = "shake 0.5s 8s cubic-bezier(0.36, 0.07, 0.19, 0.97), shake 0.5s 8.3s cubic-bezier(0.36, 0.07, 0.19, 0.97), shake 0.5s 8.6s cubic-bezier(0.36, 0.07, 0.19, 0.97)";
6851        }
6852
6853        if (pageViews > 10 && Math.random() > 0.98) { //2%
6854            setTimeout(loadDropGfx, 15000); //15 secs
6855        }
6856
6857        setTimeout(function () {
6858            var audioFile = "z/assets/extras/imGonnaBeInfectious.mp3";
6859            var audio = new Audio(audioFile);
6860            audio.play();
6861            gtag('event', '12 Hours Idle Tune', {
6862                'event_category': 'Bonus Content',
6863                'event_label': 'Easter Egg'
6864            });
6865        }, 43200000); //12 hours
6866
6867    </script>
6867
6868
6869    <!-- deliberate code splitting for fid -->
6870
6871    
6871<script>
6872        //START OF FRIV DAILY - display current day and date
6873        ////////////////////////////////////////////////////
6874
6875        var suffix = "th";
6876        if (date == 1 || date == 21 || date == 31) {
6877            suffix = "st"
6878        };
6879        if (date == 2 || date == 22) {
6880            suffix = "nd"
6881        };
6882        if (date == 3 || date == 23) {
6883            suffix = "rd"
6884        };
6885
6886        ///face emojis sadly duplicated x2 as android is missing various cute ones - check later
6887        var emojis = [
6888            '😃', '😄', '😁', '😆', '😂', '😉', '😊', '😇', '😍', '😘', '😚', '😋', '😜', '😝', '😐', '😶', '😏', '😌', '😔', '😷', '😵', '😎', '😲', '😳', '😖', '😃', '😄', '😁', '😆', '😂', '😉', '😊', '😇', '😍', '😘',
6889        ];
6890
6891        todaysDateEmoji1.innerHTML = emojis[date];
6892        todaysDateEmoji2.innerHTML = emojis[date + 3];
6893
6894        //https://emojipedia.org/unicode-6.0/ (most compatible emojis list)
6895        //emoji compatibility test
6896        /*
6897        var i;
6898        var text ="";
6899        for (i = 0; i < emojis.length; i++) { 
6900            text += emojis[i] +"..." + i + "        ";
6901        }
6902        }
6903        text += "&#x1f385; &#x1f386; &#x1f495; &#x1f340; &#x1f469; &#x1f468; &#x1f383; &#x1f47b; &#x1f60f; &#x1f642; &#x1f648; &#x1f4f9; &#x1f3b6;";
6904        dBugText.innerHTML = text;
6905        */
6906
6907
6908        var calenderString1 = daylist[day];
6909        var calenderString2 = date + suffix + " " + monthlist[month];
6910
6911
6912
6913        switch (specialDay) {
6914            case "firstOfMonth":
6915                calenderString1 = "pinch punch time on " + calenderString1;
6916                break;
6917            case "friday13th":
6918                calenderString1 = "only GOOD luck on Friv on...", calenderString2 = "FRIDAY THE 13TH";
6919                todaysDateEmoji1.innerHTML = todaysDateEmoji2.innerHTML = "👌";
6920                break;
6921            case "valentinesDay":
6922                calenderString1 = "time for lovin' on...", calenderString2 = "VALENTINE'S&nbsp;DAY";
6923                todaysDateEmoji1.innerHTML = todaysDateEmoji2.innerHTML = "💛";
6924                break;
6925            case "stPatricksDay":
6926                calenderString1 = "time to catch a leprechaun on...", calenderString2 = "ST.&nbsp;PATRICK'S&nbsp;DAY";
6927                todaysDateEmoji1.innerHTML = todaysDateEmoji2.innerHTML = "🍀";
6928                break;
6929            case "aprilFoolsDay":
6930                calenderString1 = "time for japes on...", calenderString2 = "APRIL&nbsp;FOOLS&nbsp;DAY";
6931                todaysDateEmoji1.innerHTML = todaysDateEmoji2.innerHTML = "💫";
6932                setTimeout(function () {
6933                    logoContainer.style.transform = "scaleX(-1)"; //flip logo
6934                }, 60000);
6935                break;
6936            case "fathersDay": //mothers day is harder to calculate worldwide
6937                calenderString1 = "not too late! In most countries it's...", calenderString2 = "FATHER'S&nbsp;DAY";
6938                todaysDateEmoji1.innerHTML = todaysDateEmoji2.innerHTML = "👨";
6939                break;
6940            case "halloween":
6941                calenderString1 = "getting really spooky...", calenderString2 = "HAPPY&nbsp;HALLOWEEN";
6942                todaysDateEmoji1.innerHTML = todaysDateEmoji2.innerHTML = "👻";
6943                break;
6944            case "christmasEve":
6945                calenderString1 = "exciting! Santa's coming! It's...", calenderString2 = "CHRISTMAS&nbsp;EVE";
6946                todaysDateEmoji1.innerHTML = todaysDateEmoji2.innerHTML = "🎅";
6947                break;
6948            case "christmasDay":
6949                calenderString1 = "finally here! We wish you a...", calenderString2 = "MERRY&nbsp;CHRISTMAS";
6950                todaysDateEmoji1.innerHTML = todaysDateEmoji2.innerHTML = "🎄";
6951                break;
6952            case "boxingDay":
6953                calenderString1 = "time to eat some leftovers on...", calenderString2 = "BOXING&nbsp;DAY";
6954                todaysDateEmoji1.innerHTML = todaysDateEmoji2.innerHTML = "📦";
6955                break;
6956            case "newYearsEve":
6957                calenderString1 = "nearly time to celebrate on...", calenderString2 = "NEW&nbsp;YEARS&nbsp;EVE";
6958                todaysDateEmoji1.innerHTML = todaysDateEmoji2.innerHTML = "🎉";
6959                break;
6960            case "newYearsDay":
6961                calenderString1 = "time to make a resolution on...", calenderString2 = "NEW&nbsp;YEARS&nbsp;DAY";
6962                todaysDateEmoji1.innerHTML = todaysDateEmoji2.innerHTML = "🎆";
6963                break;
6964            default:
6965            //do nothing
6966        }
6967
6968        var secondMonth = 0;
6969        if (month % 2 == 1) { //is an 'even' month
6970            secondMonth = 31;
6971        }
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981        dateStrap.innerHTML = "It's " + calenderString1 + " " + calenderString2 + "!";
6982
6983        //sharing buttons / analytics
6984
6985        /*
6986            facebookShare.onclick = function() {
6987                facebookShareFunc()
6988            };
6989
6990            function facebookShareFunc() {
6991                gtag('event', 'Facebook Share', {
6992                    'event_category': 'Bonus Content',
6993                    'event_label': 'Social Share Click'
6994                });
6995                setTimeout(function() {
6996                    window.open("https://www.facebook.com/sharer/sharer.php?u=www.friv.com/?rFBx");
6997                }, 300);
6998            };
6999            twitterShare.onclick = function() {
7000                twitterShareFunc()
7001            };
7002
7003            function twitterShareFunc() {
7004                gtag('event', 'Twitter Share', {
7005                    'event_category': 'Bonus Content',
7006                    'event_label': 'Social Share Click'
7007                });
7008                setTimeout(function() {
7009                    window.open("https://twitter.com/intent/tweet?url=http%3A%2F%2Fwww.friv.com%2Fnew.html?rTWx&text=Lots%20of%20great%20games%20without%20any%20nagging%20or%20in-app%20purchases!%20%23newfriv");
7010                }, 300);
7011            };
7012    
7013            */
7014
7015
7016
7017        //BREAKPOINT
7018        ////////////
7019        if (breakPoint) {
7020            gtag('event', 'Breakpoint 09', {
7021                'event_category': 'Debug',
7022                'event_label': 'Breakpoints'
7023            });
7024        }
7025        ////////////
7026        ////////////
7027
7028
7029
7030
7031
7032
7033        //BONUS SECTION - define frivolous facts
7034        ////////////////////////////////////////
7035
7036        var facts = [
7037            "Ants never sleep.",
7038            "When a baby giraffe is born it falls from a height of six feet, normally without being hurt.",
7039            "A male emperor moth can detect and find a female of his species a mile away.",
7040            "Months that begin on a Sunday will always have a 'Friday the 13th'.",
7041            "An ostrich's eye is bigger than its brain.",
7042            "The whistle of the blue whale is the loudest sound made by any animal. At 188 decibels, it is louder than the average jet aircraft.",
7043            "A whip can make a 'sonic boom' cracking sound because its tip moves faster than the speed of sound.",
7044            "Strawberries are the only fruit to have their seeds on the outside.",
7045            "The human brain has 100 billion neurons connected together with 100 trillion paths. That's 100,000,000,000,000 connections in your head!",
7046            "Only in 2007 did Italian become the official language of Italy. It was opposed by 75 members of parliament",
7047            "'Stewardesses' is the longest word that is typed with only the left hand on a computer keyboard.",
7048            "Tigers have striped skin, not just striped fur. The stripes are like fingerprints and no two tigers have the same pattern.",
7049            "There are more chickens in the world than people.",
7050            "A dragonfly can fly 25 miles / 40 km per hour.",
7051            "A normal bed and duvet can be home to as many as ten million dust mites.",
7052            "The longest recorded flight of a chicken is 13 seconds.",
7053            "If you try to squeeze the ends of an egg with your thumb and finger you won't be able to break it.",
7054            "Some kinds of frogs can be frozen solid, then thawed, and continue living.",
7055            "Feeding canaries with a diet of red peppers turns them orange.",
7056            "A jellyfish is 95% water. Humans around 70%.",
7057            "Ravens can learn to speak better than parrots.",
7058            "The human body uses three hundred muscles to balance itself when standing still.",
7059            "Hippos kill more people in Africa than crocodiles.",
7060            "Giant Sequoia trees are the heaviest living things to have existed on Earth; they can weigh more than 6,000 tons.",
7061            "The longest word in the English language is: Pneumonoultramicroscopicsilicovolcanoconiosis (45 letters) although many people find Antidisestablishmentarianism (28 letters) easier to slip into everyday conversation.",
7062            "A hippo can open its mouth wide enough to fit a four foot tall child inside.",
7063            "In ten minutes, a hurricane releases more energy than all the world's nuclear weapons combined.",
7064            "'Almost' is the longest commonly used word in the English language with all the letters in alphabetical order.",
7065            "Apples are approximately 25% air. That's why they float.",
7066            "Snails can sleep for three years without eating.",
7067            "98% of the weight of water is made up from oxygen.",
7068            "The ancient Mesopotamians invented mathematics, astronomy, writing, architecture, libraries, archeology and museums.",
7069            "A fly always jumps backwards for a quick getaway when you try to hit it.",
7070            "Crocodiles swallow stones to help them dive deeper.",
7071            "The British Royal Family give presents to each other on Christmas Eve ...a German tradition."
7072        ];
7073
7074        switch (specialDay) {
7075            case "valentinesDay":
7076                frivolousFact.innerHTML = "Valentine's Day Fact<br><br>" + "Earthworms have five hearts ...how romantic!";
7077                break;
7078            case "aprilFoolsDay":
7079                frivolousFact.innerHTML = "Today's Frivolous Fact<br><br>" + "Not everyone knows that lightbulbs work a lot like vacuum cleaners, only instead of sucking air, they suck dark. When you go into a dark room and flick the switch, the bulb will 'suck' the darkness out of the room. If the bulb is working correctly its indicator light will come on. Just like vacuum cleaners, lightbulbs don't collect every last bit. Look in the corners, and you will see that the sucking power is reduced, and some darkness remains - especially behind furniture. Scientists call this leftover darkness 'shadow'.";
7080                break;
7081            case "friday13th":
7082                frivolousFact.innerHTML = "Today's Unlucky Fact<br><br>" + "Friday the 13th has long been considered an unlucky day, and if you are afraid of it you suffer from Paraskevidekatriaphobia. Unfortunately every year has at least one Friday 13th, and sometimes they can have three!";
7083                break;
7084            case "halloween":
7085                frivolousFact.innerHTML = "Today's Halloween Fact<br><br>" + "The Halloween festival is believed to have begun in 18th century Ireland. Pumpkins however originated in Mexico.";
7086                break;
7087            case "dec20th":
7088                frivolousFact.innerHTML = "Christmas Fact<br><br>" + "&quot;Jingle Bells&quot; was written in 1857 for Thanksgiving, not Christmas!";
7089                break;
7090            case "dec21st":
7091                frivolousFact.innerHTML = "Christmas Fact<br><br>" + "When German Prince Albert got and decorated a tree for his new wife, Queen Victoria of England, it really took off ...across the world.";
7092                break;
7093            case "dec22nd":
7094                frivolousFact.innerHTML = "Christmas Fact<br><br>" + "According to the Guinness book of records, Jingle Bells became the first song played in space when, on 16 December 1965, it was broadcast during NASA’s Gemini 6A space flight. Aliens almost certainly hold an earlier record, but this is unverified.";
7095                break;
7096            case "dec23rd":
7097                frivolousFact.innerHTML = "Christmas Fact<br><br>" + "The first commercial Christmas cards were commissioned by civil servant Sir Henry Cole in London in 1843.";
7098                break;
7099            case "christmasEve":
7100                frivolousFact.innerHTML = "Christmas Eve Fact<br><br>" + "As legend has it, we hang up stockings by our fireplaces because a long time ago there was a very poor man who didn't have enough money for his three daughters. Generous old St. Nick dropped some gold coins down the family's chimney one night after the girls had hung their freshly-washed stockings by the fire to dry. The gold ended up in their stockings as a kind of gift, and the tradition stuck. Make sure you leave a stocking out tonight!";
7101                break;
7102            case "christmasDay":
7103                frivolousFact.innerHTML = "Christmas Day Fact<br><br>" + "We celebrate Christmas as the day Jesus was born, but the actual date is lost to history. There’s no mention of December the 25th in the Bible. Don't let that stop you enjoying this special day!";
7104                break;
7105            case "boxingDay":
7106                frivolousFact.innerHTML = "Boxing Day Fact<br><br>" + "Boxing Day gets its name from all the money collected in church alms-boxes for the poor.";
7107                break;
7108            default:
7109                if (Math.random() > 0.01) {
7110                    frivolousFact.innerHTML = "Today's Frivolous Fact<br><br>" + facts[date];
7111                } else {
7112                    frivolousFact.innerHTML = "Secret Friv Fact<br><br>" + "If you click on the Friv logo at the top of the page 10 times, you get to see extra 'hidden' games. This fact is TOP SECRET. Please don't tell anyone!";
7113                }
7114        }
7115
7116
7117
7118
7119
7120
7121        //BONUS SECTION - define famous quotes
7122        ///////////////////////////////////////
7123
7124        var quotes = [
7125            ["All our dreams can come true, if we have the courage to pursue them.", "Walt Disney"], //spare
7126            ["Opportunity is missed by most people because it is dressed in overalls and looks like work.", "Thomas Edison"],
7127            ["Try to be a rainbow in someone's cloud.", "Maya Angelou"],
7128            ["A friend is someone who knows all about you and still loves you.", "Elbert Hubbard"],
7129            ["We love life, not because we are used to living but because we are used to loving.", "Friedrich Nietzsche"],
7130            ["When you judge another, you do not define them; you define yourself.", "Wayne Dyer"],
7131            ["Don't walk in front of me, I may not follow. Don't walk behind me, I may not lead. Walk beside me and be my friend.", "Albert Camus"],
7132            ["You only live once, but if you do it right, once is enough.", "Mae West"],
7133            ["You miss 100% of the shots you don't take.", "Wayne Gretzky"],
7134            ["The best and most beautiful things in the world cannot be seen or even touched. They must be felt with the heart.", "Helen Keller"],
7135            ["Happiness is not a goal; it is a by-product.", "Eleanor Roosevelt"],
7136            ["The only way to discover the limits of the possible is to go beyond them into the impossible.", "Arthur C. Clark"],
7137            ["You cannot shake hands with a clenched fist.", "Indira Gandhi"],
7138            ["We must learn to live together as brothers or perish together as fools.", "Martin Luther King, Jr."],
7139            ["Love isn't something you find. Love is something that finds you.", "Loretta Young"], //14-valentines
7140            ["If you want to lift yourself up, lift up someone else.", "Booker T. Washington"],
7141            ["No act of kindness, no matter how small, is ever wasted.", "Aesop"],
7142            ["Whoever is happy will make others happy too.", "Anne Frank"],
7143            ["Success is liking yourself, liking what you do, and liking how you do it.", "Maya Angelou"],
7144            ["The road to success and the road to failure are almost exactly the same.", "Colin R. Davis"],
7145            ["Everything has beauty, but not everyone can see.", "Confucius"],
7146            ["Coming together is a beginning; keeping together is progress; working together is success.", "Edward Everett Hale"],
7147            ["For it was not into my ear you whispered, but into my heart. It was not my lips you kissed, but my soul.", "Judy Garland"],
7148            ["Believe you can and you're halfway there.", "Theodore Roosevelt"],
7149            ["If you don't make mistakes, you're not working on hard enough problems.", "Frank Wilczek"],
7150            ["Walking with a friend in the dark is better than walking alone in the light.", "Helen Keller"],
7151            ["Two possibilities exist: either we are alone in the Universe or we are not. Both are equally terrifying.", "Arthur C. Clark"],
7152            ["There is no charm equal to tenderness of heart.", "Jane Austen"],
7153            ["There is only one happiness in this life, to love and be loved.", "George Sand"],
7154            ["If opportunity doesn't knock, build a door.", "Milton Berle"],
7155            ["Though no one can go back and make a brand new start, anyone can start from now and make a brand new ending.", "Carl Bard"],
7156            ["Be yourself; everyone else is already taken.", "Oscar Wilde"],
7157            ["Remember no one can make you feel inferior without your consent.", "Eleanor Roosevelt"],
7158            ["A person who never made a mistake never tried anything new.", "Albert Einstein"]
7159        ];
7160
7161        var dispQuote = "Daily Famous Quote<br><br>" + "&quot;" + quotes[date][0] + "&quot;<br><br>" + quotes[date][1];
7162
7163        famousQuote.innerHTML = "Daily Famous Quote<br><br>" + "&quot;" + quotes[date][0] + "&quot;<br><br>" + quotes[date][1];
7164
7165        switch (specialDay) {
7166            case "aprilFoolsDay":
7167                dispQuote = "Daily Famous Quote<br><br>" + "&quot;A fool thinks himself to be wise, but a wise man knows himself to be a fool.&quot;<br><br>William Shakespeare";
7168                break;
7169            default:
7170            // code block
7171        }
7172
7173        famousQuote.innerHTML = dispQuote;
7174
7175        //BONUS SECTION - define and show jokes
7176        ///////////////////////////////////////
7177
7178        var jokes = [
7179            //odd
7180            ["What do you call a vicar on a moped?", "Rev!"],
7181            ["Why did the M&M go to school?", "Because it wanted to be a Smartie!"],
7182            ["Why did the frog take the bus to work?", "His car got toad away!"], //2-top-4
7183            ["Why did the custard cream biscuit go to the dentist?", "Because he'd lost his filling!"],
7184            ["What did the left eye say to the right eye?", "&quot;Between you and me, something smells!&quot;"],
7185            ["Why can't pirates play cards?", "Because they keep sitting on the deck!"],
7186            ["Why do bees have sticky hair?", "Because they use honeycombs!"],
7187            ["Why don't scientists like atoms?", "Because they make up everything!"],
7188            ["Why was the broom late?", "Because it overswept!"],
7189            ["When is it bad luck to see a black cat?", "When you're a mouse!"],
7190            ["Why was the picture sent to jail?", "Because it was framed!"],
7191            ["What breed of dog can jump higher than a skyscraper?", "Any dog, because skyscrapers can't jump!"],
7192            ["What is the worst vegetable to have on a ship?", "A leek!"],
7193            ["How do you know carrots are good for your eyes?", "You never see rabbits wearing glasses!"],
7194            ["A truck driver and a doctor are in love with the same beautiful lady. The truck driver has to go on a one-week trip, but gives the lady seven apples before he leaves. Why?", "An apple a day keeps the doctor away!"], //14-top-2
7195            ["Why can't you trust the law of gravity?", "Because it will always let you down!"], //15-top-1
7196            ["What do you call a train made out of bubblegum?", "A chew-chew train!"],
7197            ["What do you get from a pampered cow?", "Spoiled milk!"],
7198            ["What do you call a person with trifle in their ears?", "Anything you like. They can't hear you!"],
7199            ["What do you call a teacher with no arms, no legs and no body?", "The head teacher!"],
7200            ["How many times can you subtract 10 from 100?", "Only once. The next time you would be subtracting 10 from 90!"],
7201            ["How do you make a sausage roll?", "Push it down a hill!"],
7202            ["Why did the toilet paper roll down the hill?", "To get to the bottom!"],
7203            ["What is a duck’s favourite snack?", "Quackers!"], //23-top-3
7204            ["How do you make a tissue dance?", "Put a little boogie in it."],
7205            ["Why can't witches play baseball?", "They don't know which bats to use!"],
7206            ["What do you call a sleeping bull on a building site?", "A bulldozer!"],
7207            ["Why do witches wear name badges?", "So they can tell which witch is which!"],
7208            ["What do you call a policeman who can't get out of bed in the morning?", "An undercover detective!"],
7209            ["Why do giraffes have long necks?", "Because they have smelly feet!"],
7210            ["What do you call a bear with no teeth?", "A gummy bear!"],
7211            ["What did the scientist get when he crossed a chicken and a cow?", "Roost beef!"], //31
7212            //even
7213            ["What do you call a woman sitting on a Mediterranean pizza?", "Olive!"],
7214            ["What kind of storm is always in a rush?", "A hurricane!"],
7215            ["What do you call a T-Rex with a scratch on its leg?", "A dino-sore!"],
7216            ["Why are pirates called pirates?", "Because they arrrr!"],
7217            ["What did the German policeman say to his chest?", "You're under a vest!"],
7218            ["What did the doctor say to the sick piano?", "I'll get it sorted, just let me make some notes!"],
7219            ["Did you hear about the claustrophobic astronaut?", "He just needed a little space!"],
7220            ["What do you call a shoe made out of a banana?", "A slipper!"],
7221            ["Yeehaw! Now listen up cowboy! If you're Chinese when you go into the bathroom, and you're American when you come out, what are you while you're IN the bathroom, sonny?!", "European!"],
7222            ["Why are fish so smart?", "Because they spend all their time in schools!"],
7223            ["What animals make the best pets?", "Cats, because they are purr-fect!"],
7224            ["Why should you always knock on the fridge door before opening it?", "Because inside there might be a salad dressing!"],
7225            ["What is the largest ant in the world?", "The elephANT!"],
7226            ["Why are football stadiums so windy?", "Because of all the fans!"],
7227            ["What do you get if you cross a pig and a pine tree?", "A porky pine!"],
7228            ["What do you get when a gang of robbers jumps into a swimming pool?", "A crime wave!"],
7229            ["Why did the scarecrow win an award?", "Because he was outstanding in his field!"],
7230            ["Did you hear about the worker at the M&M factory?", "He got fired for throwing away all the 'W's!"],
7231            ["Why did Cinderella get kicked out of the hockey team?", "Because she kept running away from the ball!"],
7232            ["What do you call a pig that does karate?", "A pork chop!"],
7233            ["What do you call a three-humped camel?", "Pregnant!"],
7234            ["Why was the girl sitting on her watch?", "Because she wanted to be on time!"],
7235            ["Why can't you hear a pterodactyl going to the bathroom?", "Because the P is silent!"],
7236            ["Did you hear about the mathematician who hated negative numbers?", "He'd stop at nothing to avoid them!"],
7237            ["What do you call a sleeping dinosaur?", "A dino snore!"],
7238            ["Why did the student eat his homework?", "Because his teacher told him it was a piece of cake!"],
7239            ["What kind of tree fits in your hand?", "A palm tree!"],
7240            ["How do you stop a skunk from smelling?", "Hold its nose!"],
7241            ["What is a skeleton's favourite musical instrument?", "A trombone!"],
7242            ["How do you make gold soup?", "Put 24 carats in it!"],
7243            ["Why did the teddy bear say no to dessert?", "Because he was stuffed!"], //62  
7244        ];
7245
7246        var dispJoke = "Daily Joke<br><br>" + jokes[date + secondMonth][0];
7247
7248        var dispJokeAnswer = jokes[date + secondMonth][1];
7249
7250        switch (specialDay) {
7251            case "valentinesDay":
7252                dispJoke = "Valentine's Day Joke<br><br>
7252" + "How did the telephone propose to his girlfriend?";
7253                dispJokeAnswer = "He gave her a ring!";
7254                break;
7255            case "aprilFoolsDay":
7256                dispJoke = "April Fools Day Joke<br><br>" + "What's the difference between Thanksgiving and April Fools Day?";
7257                dispJokeAnswer = "On one you're thankful and on the other you're prankful!";
7258                break;
7259            case "halloween":
7260                dispJoke = "Halloween Joke<br><br>" + "What room in a house does a ghost never go into?";
7261                dispJokeAnswer = "The living room!";
7262                break;
7263            case "dec20th":
7264                dispJoke = "Christmas Joke<br><br>" + "What is Santa's dogs name?";
7265                dispJokeAnswer = "Santa Paws!";
7266                break;
7267            case "dec21st":
7268                dispJoke = "Christmas Joke<br><br>" + "How do you know when Santa’s around?";
7269                dispJokeAnswer = "You can always sense his presents.";
7270                break;
7271            case "dec22nd":
7272                dispJoke = "Christmas Joke<br><br>" + "What kind of music do elves listen to?";
7273                dispJokeAnswer = "Wrap music!";
7274                break;
7275            case "dec23rd":
7276                dispJoke = "Christmas Joke<br><br>" + "What did Mrs. Claus shout up to Santa when she saw him passing overhead?";
7277                dispJokeAnswer = "'Looks like rain dear!'";
7278                break;
7279            case "christmasEve":
7280                dispJoke = "Christmas Eve Joke<br><br>" + "Who says &quot;Oh Oh Oh&quot;?";
7281                dispJokeAnswer = "Santa walking backwards!";
7282                break;
7283            case "christmasDay":
7284                dispJoke = "Christmas Day Joke<br><br>" + "Why did Jack Frost have to spend Christmas day all by himself?";
7285                dispJokeAnswer = "Because he had to self ice-olate!";
7286                break;
7287            case "boxingDay":
7288                dispJoke = "Boxing Day Joke<br><br>" + "What did one snowman say to the other?";
7289                dispJokeAnswer = "'Hey, can you smell carrots?!'";
7290                break;
7291            case "":
7292            default:
7293            // code block
7294        }
7295
7296        jokeA.innerHTML = dispJoke;
7297
7298        function showJokeAnswer() {
7299            jokeB.innerHTML = dispJokeAnswer;
7300            jokeA.style.cursor = "default";
7301            jokeB.style.cursor = "default";
7302            jokeBottomBar.style.display = "block";
7303            funnyVideoContainer.pause();
7304
7305            gtag('event', ("Joke : " + date), {
7306                'event_category': 'Bonus Content',
7307                'event_label': 'Joke Answer Shown'
7308            });
7309
7310        }
7311
7312        //BONUS SECTION - cute picture
7313        //////////////////////////////
7314        var allowCutePictureVoting = true;
7315        if (!allowCutePictureVoting) {
7316            cuteImageBottomBar.innerHTML = "";
7317            cuteImageBottomBar.style.paddingBottom = "0";
7318        }
7319
7320        function showCutePicture() {
7321            var theDate = new Date();
7322            var date = theDate.getDate();
7323            cutePicture.innerHTML = "Daily Cute Picture";
7324            //rig date for special days               
7325            switch (specialDay) {
7326                case "dec20th":
7327                    date = "xmas1";
7328                    cutePicture.innerHTML = "Cute Xmas Picture 1/6";
7329                    break;
7330                case "dec21st":
7331                    date = "xmas2";
7332                    cutePicture.innerHTML = "Cute Xmas Picture 2/6";
7333                    break;
7334                case "dec22nd":
7335                    date = "xmas3";
7336                    cutePicture.innerHTML = "Cute Xmas Picture 3/6";
7337                    break;
7338                case "dec23rd":
7339                    date = "xmas4";
7340                    cutePicture.innerHTML = "Cute Xmas Picture 4/6";
7341                    break;
7342                case "christmasEve":
7343                    date = "xmas5";
7344                    cutePicture.innerHTML = "Cute Xmas Picture 5/6";
7345                    break;
7346                case "christmasDay":
7347                    date = "xmas6";
7348                    cutePicture.innerHTML = "Cute Xmas Picture 6/6";
7349                    break;
7350                default:
7351                // code block
7352            }
7353            cutePicture.style.cursor = "default";
7354            cuteImageBottomBar.style.display = "block";
7355            cuteImage.style.backgroundImage = "url('z/frivdaily/cute/" + date + ".jpg')";
7356            cuteImage.style.display = "block";
7357            cuteImage.scrollIntoView({
7358                block: 'end',
7359                behavior: 'smooth'
7360            });
7361            funnyVideoContainer.pause();
7362            gtag('event', ("Cute Picture : " + date), {
7363                'event_category': 'Bonus Content',
7364                'event_label': 'Cute Picture Shown'
7365            });
7366        }
7367
7368
7369
7370
7371
7372
7373
7374        //BONUS SECTION - dailyGIF
7375        //////////////////////////
7376        var allowDailyGIFVoting = false;
7377        if (!allowDailyGIFVoting) {
7378            dailyGIFBottomBar.innerHTML = "";
7379            dailyGIFBottomBar.style.paddingBottom = "0";
7380        }
7381
7382        //var selectedGIF = Math.floor(Math.random() * GIFs.length);
7383
7384        var GIFCounter = 0;
7385
7386        function showDailyGIF() {
7387
7388            dailyGIF.innerHTML = "Daily GIFs";
7389            dailyGIF.style.cursor = "default";
7390            dailyGIFBottomBar.style.display = "block";
7391
7392            if (GIFCounter == 0) {
7393                GIFMessage.style.display = "block";
7394                GIFMessage.innerHTML = "Tap to see all<br>10 daily GIFs";
7395                GIFCounter = 1;
7396            }
7397            setTimeout(function () {
7398                GIFMessage.style.display = "none";
7399            }, 2500);
7400
7401            var chosenGIF = date + secondMonth;
7402
7403            //specialDay = "valentinesDay";
7404            //specialDay = "aprilFoolsDay";
7405            //specialDay = "easterSunday";  
7406            //specialDay = "halloween";   
7407            //specialDay = "dec20th";
7408            //specialDay = "dec21st";
7409            //specialDay = "dec22nd";
7410            //specialDay = "dec23rd";
7411            //specialDay = "christmasEve";
7412            //specialDay = "christmasDay";
7413            //specialDay = "newYearsEve";
7414            //specialDay = "newYearsDay";  
7415
7416            switch (specialDay) {
7417                case "valentinesDay":
7418                    chosenGIF = specialDay;
7419                    break;
7420                case "aprilFoolsDay":
7421                    chosenGIF = specialDay;
7422                    break;
7423                case "easterSunday":
7424                    chosenGIF = specialDay;
7425                    break;
7426                case "halloween":
7427                    chosenGIF = specialDay;
7428                    break;
7429                case "dec20th":
7430                    chosenGIF = specialDay;
7431                    break;
7432                case "dec21st":
7433                    chosenGIF = specialDay;
7434                    break;
7435                case "dec22nd":
7436                    chosenGIF = specialDay;
7437                    break;
7438                case "dec23rd":
7439                    chosenGIF = specialDay;
7440                    break;
7441                case "christmasEve":
7442                    chosenGIF = specialDay;
7443                    break;
7444                case "christmasDay":
7445                    chosenGIF = specialDay;
7446                    break;
7447                case "newYearsEve":
7448                    chosenGIF = specialDay;
7449                    break;
7450                case "newYearsDay":
7451                    chosenGIF = specialDay;
7452                    break;
7453                default:
7454            }
7455
7456            dailyGIFImage.style.backgroundImage = "url('z/frivdaily/gifs/" + chosenGIF + "-" + GIFCounter + ".gif')";
7457            GIFCounter++;
7458            if (GIFCounter == 11) {
7459                GIFCounter = 1;
7460            }
7461
7462            dailyGIFImage.style.display = "block";
7463            dailyGIFImage.scrollIntoView({
7464                block: 'end',
7465                behavior: 'smooth'
7466            });
7467            funnyVideoContainer.pause();
7468            gtag('event', ("Daily GIFs : " + date), {
7469                'event_category': 'Bonus Content',
7470                'event_label': 'Daily GIFs Shown'
7471            });
7472        }
7473
7474
7475
7476
7477        //BONUS SECTION - amazing picture
7478        /////////////////////////////////
7479        var allowAmazingPictureVoting = true;
7480        if (!allowAmazingPictureVoting) {
7481            amazingImageBottomBar.innerHTML = "";
7482            amazingImageBottomBar.style.paddingBottom = "0";
7483        }
7484
7485        function showAmazingPicture() {
7486            var theDate = new Date();
7487            var date = theDate.getDate();
7488            amazingPicture.innerHTML = "Daily Amazing Picture";
7489            //rig date for special days                
7490            switch (specialDay) {
7491                case "dec20th":
7492                    date = "xmas1";
7493                    amazingPicture.innerHTML = "Amazing Xmas Picture 1/6";
7494                    break;
7495                case "dec21st":
7496                    date = "xmas2";
7497                    amazingPicture.innerHTML = "Amazing Xmas Picture 2/6";
7498                    break;
7499                case "dec22nd":
7500                    date = "xmas3";
7501                    amazingPicture.innerHTML = "Amazing Xmas Picture 3/6";
7502                    break;
7503                case "dec23rd":
7504                    date = "xmas4";
7505                    amazingPicture.innerHTML = "Amazing Xmas Picture 4/6";
7506                    break;
7507                case "christmasEve":
7508                    date = "xmas5";
7509                    amazingPicture.innerHTML = "Amazing Xmas Picture 5/6";
7510                    break;
7511                case "christmasDay":
7512                    date = "xmas6";
7513                    amazingPicture.innerHTML = "Amazing Xmas Picture 6/6";
7514                    break;
7515                default:
7516                // code block
7517            }
7518            amazingPicture.style.cursor = "default";
7519            amazingImageBottomBar.style.display = "block";
7520            amazingImage.style.backgroundImage = "url('z/frivdaily/amazing/" + date + ".jpg')";
7521            amazingImage.style.display = "block";
7522            amazingImage.scrollIntoView({
7523                block: 'end',
7524                behavior: 'smooth'
7525            });
7526            funnyVideoContainer.pause();
7527            gtag('event', ("Amazing Picture : " + date), {
7528                'event_category': 'Bonus Content',
7529                'event_label': 'Amazing Picture Shown'
7530            });
7531        }
7532
7533        //BONUS SECTION - street art
7534        ////////////////////////////////
7535        var allowStreetArtVoting = true;
7536        if (!allowStreetArtVoting) {
7537            streetArtBottomBar.innerHTML = "";
7538            streetArtBottomBar.style.paddingBottom = "0";
7539        }
7540
7541        function showStreetArt() {
7542            var theDate = new Date();
7543            var date = theDate.getDate();
7544            streetArt.innerHTML = "Daily Street Art";
7545            switch (specialDay) {
7546                case "dec20th":
7547                    date = "xmas1";
7548                    streetArt.innerHTML = "Xmas Street Art 1/6";
7549                    break;
7550                case "dec21st":
7551                    date = "xmas2";
7552                    streetArt.innerHTML = "Xmas Street Art 2/6";
7553                    break;
7554                case "dec22nd":
7555                    date = "xmas3";
7556                    streetArt.innerHTML = "Xmas Street Art 3/6";
7557                    break;
7558                case "dec23rd":
7559                    date = "xmas4";
7560                    streetArt.innerHTML = "Xmas Street Art 4/6";
7561                    break;
7562                case "christmasEve":
7563                    date = "xmas5";
7564                    streetArt.innerHTML = "Xmas Street Art 5/6";
7565                    break;
7566                case "christmasDay":
7567                    date = "xmas6";
7568                    streetArt.innerHTML = "Xmas Street Art 6/6";
7569                    break;
7570                default:
7571                // code block
7572            }
7573            streetArt.style.cursor = "default";
7574            streetArtBottomBar.style.display = "block";
7575            streetArtImage.style.backgroundImage = "url('z/frivdaily/streetart/" + date + ".jpg')";
7576            streetArtImage.style.display = "block";
7577            streetArtImage.scrollIntoView({
7578                block: 'end',
7579                behavior: 'smooth'
7580            });
7581            funnyVideoContainer.pause();
7582            gtag('event', ("Street Art : " + date), {
7583                'event_category': 'Bonus Content',
7584                'event_label': 'Street Art Shown'
7585            });
7586        }
7587
7588        //BONUS SECTION - puzzle
7589        ////////////////////////
7590        var gws = "Can you find all the countries listed in the grid? The first one is done for you.";
7591        var cu = " Can you spot the ";
7592        var di = " differences?";
7593        var ono = " Which is the odd one out?";
7594        var mb = "Can you find the correct path for the monkey to get her banana?";
7595        var bc = "Can you find the correct path for the bunny to get her carrot?";
7596        var lca = "Look carefully at these ";
7597        var hm = "This monkey is hungry and needs her banana! Can you find which route A, B, C or D is the right one?";
7598
7599        var puzzlePrompts = [
7600            "0",
7601            lca + "9 dogs." + ono,
7602            "Take a close look at this lady in her bathtub." + cu + 7 + di,
7603            hm,
7604            lca + "20 happy frogs." + ono,
7605            mb,
7606            "Study these two scenes." + cu + 5 + di,
7607            lca + "8 tall giraffes." + ono,
7608            "Take a close look at these cheerful goldfish." + cu + 5 + di,
7609            lca + "9 wise owls." + ono,
7610            bc,
7611            lca + "9 friendly lions." + ono,
7612            "Shop till you drop!" + cu + 5 + di,
7613            lca + "4 pirate parrots." + ono,
7614            lca + "9 cheeky monkeys." + ono,
7615            "This young alligator explorer is very polite. He certainly won't bite!" + cu + 5 + di,
7616            "This friendly bee is taking a break from making honey." + cu + 4 + di,
7617            "Look carefully at these healthy veggies." + cu + 6 + di,
7618            mb,
7619            lca + "9 cuddly bears." + ono,
7620            hm,
7621            "It's a lovely sunny day." + cu + 6 + di,
7622            mb,
7623            lca + "12 cute kittens." + ono,
7624            lca + "12 fashionable llamas." + ono,
7625            "Yumm! Look at these two chocolate treats." + cu + 4 + di,
7626            mb,
7627            lca + "9 sweet piggies." + ono,
7628            "Look at this fearsome rattlesnake." + cu + 6 + di,
7629            hm,
7630            mb,
7631            "Can you find all 6 words in this word search?"
7632        ];
7633
7634        var allowPuzzleVoting = true;
7635        if (!allowPuzzleVoting) {
7636            puzzleBottomBar.innerHTML = "";
7637            puzzleBottomBar.style.paddingBottom = "0";
7638        }
7639
7640        var puzzleImg1 = "url('z/frivdaily/puzzles/" + date + ".png')";
7641        var puzzleImg2 = "url('z/frivdaily/puzzles/" + date + "x.png')";
7642
7643        function showPuzzle() {
7644            puzzle.innerHTML = "Daily Puzzle";
7645            puzzle.style.cursor = "default";
7646            puzzleBottomBar.style.display = "block";
7647            puzzleImage.style.backgroundImage = puzzleImg1;
7648            setTimeout(function () {
7649                puzzleImagePreload.style.backgroundImage = puzzleImg2;
7650            }, 5000); //preload solution
7651            puzzleImage.style.display = "block";
7652            puzzleMessage.innerHTML = puzzlePrompts[date] + "<br><br>Tap to close.<br>Tap Tap Tap for the answer!";
7653            puzzleImage.scrollIntoView({
7654                block: 'end',
7655                behavior: 'smooth'
7656            });
7657            funnyVideoContainer.pause();
7658            gtag('event', ("Puzzle : " + date), {
7659                'event_category': 'Bonus Content',
7660                'event_label': 'Puzzle Shown'
7661            });
7662        }
7663
7664        var puzzleTap = 0;
7665
7666        function showPuzzleSolution() {
7667            puzzleTap++;
7668            if (puzzleTap == 1) {
7669                puzzleMessage.style.display = "none";
7670            }
7671            if (puzzleTap == 5) {
7672                puzzleImage.style.backgroundImage = puzzleImg2;
7673                gtag('event', ("Puzzle Solution : " + date), {
7674                    'event_category': 'Bonus Content',
7675                    'event_label': 'Puzzle Solution Shown'
7676                });
7677            }
7678            if (puzzleTap == 10) {
7679                puzzleImage.style.backgroundImage = puzzleImg1;
7680                puzzleTap = 0;
7681            }
7682        }
7683
7684
7685
7686
7687
7688        //BREAKPOINT
7689        ////////////
7690        if (breakPoint) {
7691            gtag('event', 'Breakpoint 10', {
7692                'event_category': 'Debug',
7693                'event_label': 'Breakpoints'
7694            });
7695        }
7696        ////////////
7697        ////////////
7698
7699
7700
7701
7702
7703        //BONUS SECTION - optical illusion
7704        //////////////////////////////////
7705        var rex = "Look at this face, then tap the image to flip it and rotate it.";
7706
7707        var opticalPrompts = [
7708            "0",
7709            rex,
7710            "Move your eyes in a circle around this image. Can you see a pulsating effect?",
7711            rex,
7712            "What is going on with 'up' in this image?",
7713            rex,
7714            "This image is like a time machine!",
7715            rex,
7716            "This walkway is completely flat. It's been cleverly painted to make it look otherwise!",
7717            rex,
7718            "Can these runners complete the circuit without falling into impossibility?",
7719            rex,
7720            "Why were these houses built crooked?",
7721            rex,
7722            "This is an impossible cube!",
7723            rex,
7724            "How was this built?",
7725            rex,
7726            "How did these construction workers ever build this?",
7727            rex,
7728            "Do the horizontal lines look straight to you?!",
7729            rex,
7730            "This is a trick image. The cars shown are all the same size. Check with your finger or a ruler.",
7731            rex,
7732            "What lies hidden beneath this walkway?",
7733            rex,
7734            "Look around this 2D image. Does it look 3D to you?",
7735            rex,
7736            "Look at these two identical images of the Leaning Tower of Pisa. Does the one on the right seem to lean more?",
7737            rex,
7738            "How are these people walking in mid-air?!",
7739            rex,
7740        ];
7741
7742        var allowOpticalVoting = true;
7743        if (!allowOpticalVoting) {
7744            opticalIllusionBottomBar.innerHTML = "";
7745            opticalIllusionBottomBar.style.paddingBottom = "0";
7746        }
7747
7748        function showOpticalIllusion() {
7749            var theDate = new Date();
7750            var date = theDate.getDate();
7751            opticalIllusion.innerHTML = "Daily Optical Illusion";
7752            opticalIllusion.style.cursor = "default";
7753            opticalIllusionBottomBar.style.display = "block";
7754            opticalIllusionImage.style.backgroundImage = "url('z/frivdaily/optical/" + date + ".jpg')";
7755            opticalIllusionImage.style.display = "block";
7756
7757            opticalIllusionMessage.innerHTML = opticalPrompts[date] + "<br><br>Tap to close.";
7758
7759            opticalIllusionImage.scrollIntoView({
7760                block: 'end',
7761                behavior: 'smooth'
7762            });
7763            funnyVideoContainer.pause();
7764            gtag('event', ("Optical Illusion : " + date), {
7765                'event_category': 'Bonus Content',
7766                'event_label': 'Optical Illusion Shown'
7767            });
7768        }
7769
7770        var opticalTap = 1;
7771
7772        function showOpticalIllusionSolution() {
7773            switch (opticalTap) {
7774                case 1:
7775                    opticalIllusionMessage.style.display = "none";
7776                    opticalTap++;
7777                    if (opticalPrompts[date] != rex) { //do nothing for non-flip images
7778                        opticalIllusionImage.style.cursor = "default";
7779                        opticalTap = 6;
7780                    }
7781                    break;
7782                case 2:
7783                    opticalIllusionImage.style.transition = "2s";
7784                    opticalIllusionImage.style.transform = "scaleY(-1)";
7785                    gtag('event', ("Optical Illusion Flipped : " + date), {
7786                        'event_category': 'Bonus Content',
7787                        'event_label': 'Optical Illusion Flipped'
7788                    });
7789                    opticalTap++;
7790                    break;
7791                case 3:
7792                    opticalIllusionImage.style.transition = "2s";
7793                    opticalIllusionImage.style.transform = "scaleY(1)";
7794                    opticalTap++
7795                    break;
7796
7797                case 4:
7798                    opticalIllusionImage.style.transition = "2s";
7799                    opticalIllusionImage.style.transform = "rotate(180deg)";
7800                    opticalTap++;
7801                    break;
7802                case 5:
7803                    opticalIllusionImage.style.transition = "2s";
7804                    opticalIllusionImage.style.transform = "rotate(360deg)";
7805                    opticalTap = 2;
7806                    break;
7807                default:
7808                // nothing
7809            }
7810
7811            setTimeout(function () {
7812                opticalIllusionImage.style.transition = "0s";
7813            }, 3000);
7814        }
7815
7816        //BONUS SECTION - sound board
7817        /////////////////////////////
7818        function showSoundBoard() {
7819            var theDate = new Date();
7820            var date = theDate.getDate();
7821            soundBoardA.innerHTML = "Daily Soundboard";
7822            soundBoardA.style.marginBottom = "-5vh";
7823            soundBoardA.style.cursor = "default";
7824            soundBoardB.style.cursor = "default";
7825            soundBoardB.style.display = "block";
7826            soundBoardA.scrollIntoView({
7827                block: 'start',
7828                behavior: 'smooth'
7829            });
7830
7831            var sounds = ["1", "2", "3", "1", "2", "3", "1", "2", "3", "1", //unused
7832                "1", "2", "3", "Drum Hit", "Puppy Power", "Echo Drip", "Quick Chime", "Elixir Found", "Accelerate", "Relaxing Beat", //1           
7833                "Emergency Alarm", "Quick Whistle", "Flustered Pigeon", "2 Stroke", "Quiet Chime", "Excited Chicken", "Ahhh", "Speed Up", "Cheeky Chimp", "Cool Piano", //2
7834                "Reload", "Explosion", "Ready Fight", "Achievement Chime", "Eyup", "Fly Past", "You Got It", "Ahaa", "Frog", "Africa Beat", //3
7835                "Achievement", "Ahha", "Raa", "Game Over", "Revving Up", "Get Ready Go", "Ricochet Bullet", "Alarm", "Roar", "Getting Married", //4
7836                "Alien Arrives", "Alien Shoots", "Roaring Fire", "Gong", "Ruff Ruff", "Boxing Bell", "Applause", "Scared Cat", "Ambulance", "God Bless America", //5
7837                "Scary Crow", "Angry Cat", "Score Chime", "Scream", "Annoying Fly", "Screaming", "Alien Warp", "Gong Gone Wrong", "Bad Luck", "Grand Finale", //6
7838                "Aqua", "Guitar Strum", "Graveyard", "Arcade", "Haa", "Arrow", "Hairclippers", "Screeching Metal", "Grunt", "Cartoon", //7
7839                "Happy Laugh", "Screaming Man", "Screech Stop", "Bah", "Sheep", "Bash Metal", "Hard To Start", "Sinister Laugh", "Bell", "Happy Tune", //8
7840                "Heartbeat", "Smash Glass", "Big Applause", "Machine Failure", "Snoring", "Big Bang", "Snort", "Big Happy", "Hello", "Helicopter", //9
7841                "Spacey", "Big Splash", "Help", "Car Screech", "Birdsong", "Whaaat", "Bip And Pip", "High Voltage", "Spooky Whoo", "Bleep Bleep Bloop", //10
7842                "Hippo", "Spacey Synth", "Spray Bullets", "Blender", "Hmm", "Spring", "Blocked Toilet", "Star Chime", "Military Radio", "Cool Loop", //11
7843                "Bonus Point", "Horse", "Stretch Catapult", "Thats Ok", "Huh", "Boy Crying", "Humm", "Success Chime", "Congrats", "Steam Organ", //12
7844                "Boy Needs Help", "Nice Work", "Super Spring", "Break Glass", "Okayy", "Swip", "Brush Teeth", "Swirly", "Bubble Cave", "You Win", //13
7845                "Switch", "Bubble Pop", "Sword Swish", "Bubbles", "Busy Bee", "Kerching", "Telephone", "Buzz", "Take Action", "Jazz Ending", //14
7846                "Kerploom", "Thankyou", "Buzzer", "Keypad", "Camera", "Huge Crash", "That Hurts", "Car Horn", "Kid Laugh", "Jazz Finale", //15
7847                "That Hurt", "Kid Laughing", "Train Whistle", "Laser", "Cartoon Fall", "Cash Register", "Laser Twang", "Huhh", "Cat", "Tribal Beat", //16
7848                "Dumb Laughing", "Tummy Blow", "Cat Whine", "Tune Radio", "Charge", "Chime", "Chicken", "Uh Huh Huh", "Laura Giggles", "Laura Is Disappointed", //17
7849                "Wake Up", "Liquidizer", "Walkie Talkie", "Click Button", "Wangle Tone", "Little Dog", "Warp", "Clockwork", "Lonely Cat", "Circus Finish", //18
7850                "Water Splash", "Uhuh", "Chicken Pop", "Vacuum", "Chomp", "Hmmm", "Lion", "Villain Laugh", "Laura Not Happy", "Laura Says Cool", //19
7851                "Church Bell", "Liquid", "Cluck", "Coin Drop", "Mad Monster", "Weird Animal", "Wendy", "Wee", "Lucas Ahem", "Lucas Is Shocked", //20
7852                "Coin In", "Metal Tap", "Wet Bog", "Mmm Tasty", "What", "Monkey Chirp", "What Am I Gunna Do Now", "Monster", "Moo Cow", "Cool Beat", //21
7853                "Whatt", "Whip", "Ray Gun", "More Games", "Whistling", "Cordless Drill", "Mystery Animal", "Whoaaargh", "Counter Bell", "Cool Strumming", //22
7854                "Near Miss Goal", "Lady Laugh", "Whokk", "Cow", "Ninja", "Win Chime", "No", "Wind Howl", "Crash Drop", "Jazzy Tune", //23
7855                "Noisy Animal", "Windy Pops", "Crazy Scream", "Coin Total", "Ohww", "Engine Start", "Crow", "Okay", "Witch Laugh", "Cute Kid Laugh", //24
7856                "Wizz Past", "Cute Kitty", "Woah", "Open Wide", "Dentist Drill", "Wohoo", "Dial", "Ouch", "Woof Woof", "Dice", //25
7857                "Owl", "Woohaa", "Open Bottle", "Disappointment", "Holy Moley", "Oww", "Wow", "Disgust", "Yeahh", "Dog", //26
7858                "Owwww", "Yeahoo", "Dolphin", "Panting", "Yeay", "Yep", "Door Close", "Penalty Whistle", "Door Creak", "Perfect", //27
7859                "You Did It", "Door Slam", "Phew", "You Failed", "Down The Slide", "Pig", "Stretch Synth", "Drag Race", "Ping Ping", "Yummy", //28
7860                "You Lost", "Drill", "Pirate Aha", "Zap", "Drinks Can", "Pour Drink", "Pop", "Zwoom", "Drip", "Droid", //29
7861                "Click Here", "Press Keys", "Drum", "Pulse", "Owww", "Stretch Chime", "Cartoon Silliness", "Trump Laughs", "Laura Coughs", "Uhumm", //30
7862                "Epic Speed", "Wee Clang", "Coin Dropper", "Mario Gets A Coin", "Cool", "Ok", "Witch", "Truck Horn", "Train", "The End", //31
7863                "Sparkle", "Quick Splash", "Scrambler", "Heavy Machinery", "Blow Air", "Brake Hard", "Keys", "Bingo", "Excited Monkey", "Its A Goal", "Zoing", "Inhaler", "Relieved", "Hey", "Crockery", //unused
7864
7865            ];
7866
7867            var soundsOffset = date * 10;
7868
7869            console.log(soundsOffset);
7870
7871            document.getElementById("sound0").innerHTML = sounds[0 + soundsOffset];
7872            document.getElementById("sound0").addEventListener("click", function () {
7873                playSound(sounds[0 + soundsOffset].replace(/ /g, "").toLowerCase())
7874            });
7875            document.getElementById("sound1").innerHTML = sounds[1 + soundsOffset];
7876            document.getElementById("sound1").addEventListener("click", function () {
7877                playSound(sounds[1 + soundsOffset].replace(/ /g, "").toLowerCase())
7878            });
7879            document.getElementById("sound2").innerHTML = sounds[2 + soundsOffset];
7880            document.getElementById("sound2").addEventListener("click", function () {
7881                playSound(sounds[2 + soundsOffset].replace(/ /g, "").toLowerCase())
7882            });
7883            document.getElementById("sound3").innerHTML = sounds[3 + soundsOffset];
7884            document.getElementById("sound3").addEventListener("click", function () {
7885                playSound(sounds[3 + soundsOffset].replace(/ /g, "").toLowerCase())
7886            });
7887            document.getElementById("sound4").innerHTML = sounds[4 + soundsOffset];
7888            document.getElementById("sound4").addEventListener("click", function () {
7889                playSound(sounds[4 + soundsOffset].replace(/ /g, "").toLowerCase())
7890            });
7891            document.getElementById("sound5").innerHTML = sounds[5 + soundsOffset];
7892            document.getElementById("sound5").addEventListener("click", function () {
7893                playSound(sounds[5 + soundsOffset].replace(/ /g, "").toLowerCase())
7894            });
7895            document.getElementById("sound6").innerHTML = sounds[6 + soundsOffset];
7896            document.getElementById("sound6").addEventListener("click", function () {
7897                playSound(sounds[6 + soundsOffset].replace(/ /g, "").toLowerCase())
7898            });
7899            document.getElementById("sound7").innerHTML = sounds[7 + soundsOffset];
7900            document.getElementById("sound7").addEventListener("click", function () {
7901                playSound(sounds[7 + soundsOffset].replace(/ /g, "").toLowerCase())
7902            });
7903            document.getElementById("sound8").innerHTML = sounds[8 + soundsOffset];
7904            document.getElementById("sound8").addEventListener("click", function () {
7905                playSound(sounds[8 + soundsOffset].replace(/ /g, "").toLowerCase())
7906            });
7907            document.getElementById("sound9").innerHTML = sounds[9 + soundsOffset];
7908            document.getElementById("sound9").addEventListener("click", function () {
7909                playSound(sounds[9 + soundsOffset].replace(/ /g, "").toLowerCase())
7910            });
7911
7912            if (lang.indexOf("en") > -1) {
7913                storyIdea.innerHTML = "<br>Challenge: Make up and tell a story using the above sounds!";
7914            }
7915
7916            gtag('event', ("Sound Board : " + date), {
7917                'event_category': 'Bonus Content',
7918                'event_label': 'Sound Board Shown'
7919            });
7920        }
7921
7922
7923
7924
7925
7926
7927
7928        function playSound(sound) {
7929            var audioFile = "z/frivdaily/sfx/" + sound + ".mp3";
7930            var audio = new Audio(audioFile);
7931            audio.play();
7932            if (Math.random() > 0.99) {
7933                gtag('event', ('Sound: ' + sound), {
7934                    'event_category': 'Bonus Content',
7935                    'event_label': 'Sound Board (1% Sample)'
7936                });
7937            }
7938        }
7939
7940
7941
7942
7943
7944
7945        //BREAKPOINT
7946        ////////////
7947        if (breakPoint) {
7948            gtag('event', 'Breakpoint 11', {
7949                'event_category': 'Debug',
7950                'event_label': 'Breakpoints'
7951            });
7952        }
7953        ////////////
7954        ////////////
7955
7956
7957
7958
7959
7960
7961
7962        //BONUS SECTION - reaction test
7963        ///////////////////////////////
7964        reactionTestA.addEventListener("click", showReactionTest);
7965
7966        var createdTime = Date.now(); //to be global
7967        var progress = 0;
7968        var overallScore = 0;
7969        var bestTime = 0;
7970        var congrats;
7971        var ranking;
7972        var myTimeOut;
7973        var reactionHappy = "<img id=reactionFaceHappy src='z/frivdaily/reaction/happyMin.svg'>";
7974        var reactionSad = "<img class=reactionFaceSad src='z/frivdaily/reaction/sadMin.svg'>";
7975        var reactionHappyInst = "<img class=reactionFaceHappyInstructions src='z/frivdaily/reaction/happyMin.svg'>";
7976        var reactionSadInst = "<img class=reactionFaceSadInstructions src='z/frivdaily/reaction/sadMin.svg'>";
7977        var reactionEmpty = "<img class=reactionFaceEmpty src='z/frivdaily/reaction/happyMin.svg'>";
7978
7979        var touchNotice = "";
7980        if (!touchDevice) {
7981            touchNotice = "<br><br>Try this test on your mobile / tablet for even faster results!";
7982        }
7983
7984        function showReactionTest() {
7985
7986            reactionTestA.scrollIntoView({
7987                block: 'start',
7988                behavior: 'smooth'
7989            });
7990
7991            //preload images
7992            imagePreloadHappy.style.display = "block";
7993            imagePreloadSad.style.display = "block";
7994            imagePreloadHappy.style.backgroundImage = "url('z/frivdaily/reaction/happyMin.svg')";
7995            imagePreloadSad.style.backgroundImage = "url('z/frivdaily/reaction/sadMin.svg')";
7996
7997            reactionTestA.removeEventListener("click", showReactionTest);
7998            reactionTestB.removeEventListener("click", showReactionTest);
7999            reactionTestA.innerHTML = "Reaction Test";
8000            reactionTestA.style.paddingTop = "3vh";
8001            reactionTestB.style.paddingTop = "3vh";
8002            reactionTestA.style.marginBottom = "-5vh";
8003            reactionTestB.style.display = "block";
8004            reactionTestA.style.cursor = "default";
8005            reactionTestB.style.cursor = "pointer";
8006            reactionTestFaces.style.backgroundColor = "rgba(0,0,0,0.3)";
8007
8008            progress = 0;
8009            overallScore = 0;
8010            ranking = 0;
8011            penalty = 0;
8012            bestTime = 0;
8013            penalty = 0;
8014            congrats = "";
8015            reactionTestFaces.style.display = "block";
8016
8017            setTimeout(function () {
8018                reactionTestFaces.innerHTML = "You will see four faces like these...<br>" + reactionSadInst + reactionSadInst + reactionHappyInst + reactionSadInst + "<br>Tap the HAPPY face as fast as you can. Take this test daily to improve your score.<br><br>Tap To Start!";
8019            }, 500); //timeout needed (unexplained) to prevent non-loading of svgs
8020
8021            reactionTestB.addEventListener("click", startReactionTest);
8022
8023            gtag('event', ("Reaction Test Played"), {
8024                'event_category': 'Bonus Content',
8025                'event_label': 'Reaction Test Shown'
8026            });
8027        }
8028
8029
8030
8031        function startReactionTest() {
8032            reactionTestFaces.style.filter = "brightness(100%)";
8033            reactionTestA.scrollIntoView({
8034                block: 'start',
8035                behavior: 'smooth'
8036            });
8037            reactionTestB.removeEventListener("click", startReactionTest);
8038            reactionTestA.style.cursor = "default";
8039            reactionTestB.style.cursor = "default";
8040            reactionTestFaces.style.backgroundColor = "rgba(0,0,0,0.3)";
8041            reactionTestText.innerHTML = "Wait!";
8042            reactionTestFaces.innerHTML = reactionEmpty + reactionEmpty + "<br>" + reactionEmpty + reactionEmpty;
8043
8044            if (progress < 7) {
8045                setTimeout(function () {
8046                    test1()
8047                }, 1500 + (Math.random() * 1500));
8048            }
8049            if (progress == 7) {
8050                reactionTestText.innerHTML = "";
8051                reactionTestB.style.cursor = "pointer";
8052                var averageTime = overallScore / progress;
8053                averageTime = Number(averageTime.toFixed(3));
8054                congrats = "Try again each day to see if you can get faster!";
8055
8056                if (averageTime > 3) {
8057                    congrats = "Did you fall asleep?!";
8058                }
8059                if (averageTime < 0.9) {
8060                    congrats = "Keep practicing! You will get even faster!";
8061                    ranking = 6.61;
8062                }
8063                if (averageTime < 0.7) {
8064                    ranking = 2.3;
8065                    congrats = "You scored 8/10! Good going! See if you can get even faster!";
8066                }
8067                if (averageTime < 0.6) {
8068                    ranking = 0.66;
8069                    congrats = "You scored: 9/10! Nice work. You are pretty fast!";
8070                }
8071                if (averageTime < 0.5) {
8072                    ranking = 0.2;
8073                    congrats = "You scored 109/10! Congrats! You are seriously fast!";
8074                }
8075                if (averageTime < 0.4) {
8076                    ranking = 0.12;
8077                    congrats = "You scored: 11/10! Wow! You are a fly!";
8078                }
8079                if (averageTime < 0.3) {
8080                    ranking = 0.05;
8081                    congrats = "You scored: #$!£*/10! YOU-ARE-SUPERHUMAN!";
8082                }
8083
8084                var rankingText = "";
8085                if (ranking > 0) {
8086                    rankingText = "<br>You are within the top " + ranking + "% of Friv users!";
8087                }
8088
8089                reactionTestB.addEventListener("click", showReactionTest);
8090                reactionTestFaces.innerHTML = "End of Test Results:<br><br>Your average time was: " + averageTime + "s.<br>Your best time was " + bestTime + "s." + rankingText + "<br><br>" + congrats + " Tap to restart." + touchNotice;
8091
8092                var analyticsResult = Number(averageTime.toFixed(1));
8093                if (analyticsResult > 1.9) {
8094                    analyticsResult = "1.9+";
8095                }
8096
8097                gtag('event', ("Result : " + analyticsResult), {
8098                    'event_category': 'Bonus Content',
8099                    'event_label': 'Reaction Test Result'
8100                });
8101            }
8102            progress++;
8103        }
8104
8105        function test1() {
8106
8107            switch (Math.floor(Math.random() * 4)) {
8108                case 0:
8109                    reactionTestFaces.innerHTML = reactionHappy + reactionSad + "<br>" + reactionSad + reactionSad;
8110                    break;
8111                case 1:
8112                    reactionTestFaces.innerHTML = reactionSad + reactionHappy + "<br>" + reactionSad + reactionSad;
8113                    break;
8114                case 2:
8115                    reactionTestFaces.innerHTML = reactionSad + reactionSad + "<br>" + reactionHappy + reactionSad;
8116                    break;
8117                case 3:
8118                    reactionTestFaces.innerHTML = reactionSad + reactionSad + "<br>" + reactionSad + reactionHappy;
8119                    break;
8120                default:
8121                // nowt
8122            }
8123
8124            reactionFaceHappy.style.cursor = "pointer";
8125            reactionTestFaces.style.backgroundColor = "green";
8126            reactionTestText.innerHTML = "Go!";
8127            createdTime = Date.now();
8128
8129            //listen on happy face
8130            reactionFaceHappy.addEventListener("mousedown", displayReactionTime);
8131
8132            //listen on all sad face (to apply penalty)
8133            var classname = document.getElementsByClassName("reactionFaceSad");
8134
8135            function applyPenalty() {
8136                penalty = 500;
8137                reactionTestText.innerHTML = "Penalty +0.5s!";
8138            };
8139            for (var i = 0; i < classname.length; i++) {
8140                classname[i].addEventListener('click', applyPenalty);
8141            }
8142        }
8143
8144        function displayReactionTime() {
8145            reactionFaceHappy.removeEventListener("click", displayReactionTime);
8146            clickedTime = Date.now();
8147            reactionTime = (clickedTime - createdTime + penalty) / 1000;
8148            penalty = 0;
8149            reactionTestText.innerHTML = reactionTime + "s.";
8150            overallScore += reactionTime;
8151            reactionTestFaces.style.filter = "brightness(50%)";
8152            reactionFaceHappy.style.cursor = "default";
8153            if (bestTime == 0) {
8154                bestTime = reactionTime;
8155            }
8156            if (reactionTime < bestTime) {
8157                bestTime = reactionTime;
8158            }
8159
8160            setTimeout(function () {
8161                startReactionTest()
8162            }, 2500);
8163        }
8164
8165        //BONUS SECTION - funny video
8166        /////////////////////////////
8167        var allowFunnyVideoVoting = true;
8168        if (!allowFunnyVideoVoting) {
8169            funnyVideoBottomBar.innerHTML = "";
8170            funnyVideoBottomBar.style.paddingBottom = "0";
8171        }
8172
8173        function showFunnyVideo() {
8174            var theDate = new Date();
8175            var date = theDate.getDate();
8176            funnyVideo.innerHTML = "Daily Funny Video";
8177
8178            switch (specialDay) {
8179                case "dec20th":
8180                    date = "xmas1";
8181                    funnyVideo.innerHTML = "Xmas Video 1/6";
8182                    break;
8183                case "dec21st":
8184                    date = "xmas2";
8185                    funnyVideo.innerHTML = "Xmas Video 2/6";
8186                    break;
8187                case "dec22nd":
8188                    date = "xmas3";
8189                    funnyVideo.innerHTML = "Xmas Video 3/6";
8190                    break;
8191                case "dec23rd":
8192                    date = "xmas4";
8193                    funnyVideo.innerHTML = "Xmas Video 4/6";
8194                    break;
8195                case "christmasEve":
8196                    date = "xmas5";
8197                    funnyVideo.innerHTML = "Xmas Video 5/6";
8198                    break;
8199                case "christmasDay":
8200                    date = "xmas6";
8201                    funnyVideo.innerHTML = "Xmas Video 6/6";
8202                    break;
8203                default:
8204                // code block
8205            }
8206
8207
8208
8209
8210            funnyVideo.style.cursor = "default";
8211            funnyVideoBottomBar.style.display = "block";
8212            funnyVideo.style.borderRadius = "0 0 0 0";
8213            funnyVideoContainer.src = "z/frivdaily/video/" + date + ".mp4";
8214            funnyVideoBox.style.display = "block";
8215            funnyVideoBox.scrollIntoView({
8216                block: 'end',
8217                behavior: 'smooth'
8218            });
8219            funnyVideoContainer.play();
8220            gtag('event', ("Funny Video : " + date), {
8221                'event_category': 'Bonus Content',
8222                'event_label': 'Video Started'
8223            });
8224
8225            funnyVideoContainer.onended = function () {
8226                gtag('event', ("Funny Video : " + date), {
8227                    'event_category': 'Bonus Content',
8228                    'event_label': 'Video Ended'
8229                });
8230            }
8231        }
8232
8233        //listen for when video is started by user and pause any chiptune which may be playing (prevents sound clash).
8234        funnyVideoContainer.addEventListener('play', function () {
8235            if (chiptunePlaying) {
8236                pauseChiptune();
8237            }
8238            storyAudio.pause();
8239            logoAudio.pause();
8240        });
8241
8242
8243
8244
8245
8246        //BREAKPOINT
8247        ////////////
8248        if (breakPoint) {
8249            gtag('event', 'Breakpoint 12', {
8250                'event_category': 'Debug',
8251                'event_label': 'Breakpoints'
8252            });
8253        }
8254        ////////////
8255        ////////////
8256
8257
8258
8259
8260
8261
8262
8263        //BONUS SECTION - love tester
8264        /////////////////////////////
8265
8266        var name1 = "";
8267        var name2 = "";
8268        var displayPercentage = 0;
8269        var tagline = "";
8270        var reduceBoxes = 0;
8271
8272        //frm dggie: start game, restart, pause, main menu, play, continue, score, level completed, hurry, time's up
8273
8274        //shortLang = "cn";
8275
8276        //top: en (35%) - es (20%) - pt (11%) - fr (5%) - ar (3.5%) - id (2%) - tr (2%) - ru (1%) pl (1%)
8277
8278        function reduceInputBoxes(size) {
8279            var x = document.getElementsByClassName("loveTesterInput");
8280            x[0].style.fontSize = size + "vmin";
8281            x[1].style.fontSize = size + "vmin";
8282        }
8283
8284        switch (shortLang) {
8285            case "nl":
8286                loveArray = ["",
8287                    "BEREKENEN!",
8288                    "OPNIEUW",
8289                    "VOER JE NAAM IN",
8290                    "VUL EEN ANDERE NAAM IN",
8291                    "Jullie passen niet echt goed bij elkaar...",
8292                    "Jullie vinden elkaar leuk, maar misschien gewoon als vrienden?",
8293                    "Hmm, jullie passen goed bij elkaar!",
8294                    "De liefde zit in de lucht! Jullie zijn voor elkaar gemaakt!",
8295                    "Dit is ware liefde, jullie zijn een sprookje!",
8296                    "MEER SPELLEN",
8297                    "Meer grappige spellen op:",
8298                    "LADEN...",
8299                    "NAAR VRIENDEN STUREN"
8300                ];
8301                break;
8302            case "fr":
8303                loveArray = ["",
8304                    "CALCULE!",
8305                    "ESSAYER ENCORE UNE FOIS",
8306                    "ENTRE TON NOM",
8307                    "ENTRE LE NOM DE L’AUTRE PERSONNE", //fails
8308                    "Ce ne serait sans doute pas le couple idéal...",
8309                    "Vous vous aimez bien, mais comme des amis, pas plus.",
8310                    "Hmm, ça pourrait aller!",
8311                    "Y a de l'amour dans l'air ! Votre union est écrite dans les étoiles!",
8312                    "C'est le grand amour, vous allez vivre un véritable conte de fées!",
8313                    "PLUS DE JEUX",
8314                    "Plus de jeux amusants sur:",
8315                    "CHARGEMENT...",
8316                    "ENVOYER À DES AMIS"
8317                ];
8318                reduceBoxes = 4;
8319                break;
8320            case "de":
8321                loveArray = ["",
8322                    "BERECHNEN!",
8323                    "NOCHMAL PROBIEREN",
8324                    "BITTE GIB DEINEN NAMEN EIN",
8325                    "GIB EINEN WEITEREN NAMEN EIN",
8326                    "Ihr passt nicht wirklich gut zueinander...",
8327                    "Ihr mögt euch, aber vielleicht nur als Freunde?",
8328                    "Hmm, ihr könntet zueinander passen!",
8329                    "Ihr liebt euch und seid füreinander bestimmt!",
8330                    "Das ist wahre Liebe. Wie in einem Märchen!",
8331                    "MERH SPIELE",
8332                    "Mehr lustige Spiele auf:",
8333                    "WIRD GELADEN...",
8334                    "AN FREUNDE SCHICKEN"
8335                ];
8336                reduceBoxes = 4.5;
8337                break;
8338            case "es":
8339                loveArray = ["",
8340                    "¡CALCULAR!",
8341                    "VOLVER A INTENTARLO",
8342                    "ESCRIBE TU NOMBRE",
8343                    "ESCRIBE OTRO NOMBRE",
8344                    "Puede que no hagáis muy buena pareja...",
8345                    "Os gustáis, pero puede que sólo como amigos...",
8346                    "¡Hmm, podríais hacer buena pareja!",
8347                    "¡Aquí se respira amor! ¡Sois una pareja ideal!",
8348                    "¡Amor verdadero! ¡Vives un cuento de hadas!",
8349                    "MÁS JUEGOS",
8350                    "Más juegos divertidos en:",
8351                    "CARGANDO...",
8352                    "ENVIAR A LOS AMIGOS"
8353                ];
8354                reduceBoxes = 6;
8355                break;
8356            case "pt": //actually 'br'
8357                loveArray = ["",
8358                    "CALCULAR!",
8359                    "VOLVER A INTENTARLO",
8360                    "ESCREVA O SEU NOME",
8361                    "ESCREVA OUTRO NOME",
8362                    "Pode não ser uma boa combinação...",
8363                    "Vocês se gostam, mas talvez só como amigos.",
8364                    "Hmm, pode dar certo!",
8365                    "Sinto cheiro de amor! Vocês são almas gêmeas!",
8366                    "É amor verdadeiro! Amor de conto de fadas!",
8367                    "MAIS JOGOS",
8368                    "Mais jogos divertidos em:",
8369                    "CARREGANDO...",
8370                    "ENVIAR AOS AMIGOS"
8371                ];
8372                reduceBoxes = 6;
8373                break;
8374            /*case "xpt":
8375            loveArray = ["",
8376                "CALCULAR",
8377                "TENTE NOVAMENTE",
8378                "INTRODUZA O SEU NOME",
8379                "INTRODUZA OUTRO NOME",
8380                "Esta não é a melhor das combinações…",
8381                "Gostam um do outro mas serão mais do que amigos?",
8382                "Hmm, esta pode ser uma bela combinação!",
8383                "O amor está no ar! Esta é uma combinação perfeita!",
8384                "Isto é amor verdadeiro. Um verdadeiro conto de fadas!",
8385                "MAIS JOGOS",
8386                "Mais jogos divertidos em:",
8387                "A CARREGAR...",
8388                "ENVIAR AOS AMIGOS"
8389            ];
8390            break;*/
8391            case "it":
8392                loveArray = ["",
8393                    "CALCOLA!",
8394                    "RIPROVA",
8395                    "DIGITA IL TUO NOME",
8396                    "DIGITA UN ALTRO NOME",
8397                    "Questo potrebbe non essere il miglior affiatamento...",
8398                    "Vi piacete, ma forse solo come amici?",
8399                    "Hmm, questo potrebbe essere un'affiatamento!",
8400                    "L'amore è nell'aria! Dio li fa e poi li accoppia!",
8401                    "Questo è vero amore. La fiaba è vostra!",
8402                    "PIÙ GIOCHI",
8403                    "Più Giochi Divertenti su:",
8404                    "CARICAMENTO...",
8405                    "INVIA AD AMICI"
8406                ];
8407                reduceBoxes = 6;
8408                break;
8409            case "se":
8410                loveArray = ["",
8411                    "ANALYSERA!",
8412                    "FÖRSÖK IGEN",
8413                    "ANGE DITT NAMN",
8414                    "ANGE DEN ANDRES NAMN",
8415                    "Ni passar kanske inte så bra ihop...",
8416                    "Ni tycker om varandra, men mest som vänner?",
8417                    "Hmm, ni kan passa bra ihop!",
8418                    "Kärleken är stark! Ni två är som gjorda för varandra!",
8419                    "Det här är äkta kärlek. Rena sagodrömmen!",
8420                    "FLER SPEL",
8421                    "Fler roliga spel på:",
8422                    "LADDAR...",
8423                    "SKICKA TILL VÄNNER"
8424                ];
8425                reduceBoxes = 5.8;
8426                break;
8427            case "pl":
8428                loveArray = ["",
8429                    "OBLICZ!",
8430                    "SPRÓBUJ PONOWNIE",
8431                    "WPROWADŹ SWOJE IMIĘ",
8432                    "WPISZ INNE IMIĘ",
8433                    "Być może to nie jest najlepszy wybór...",
8434                    "Lubicie się, ale może tylko jako przyjaciele?",
8435                    "Hmm, całkiem niezłe dopasowanie!",
8436                    "Miłość wisi w powietrzu! To przeznaczenie zapisane w niebie!",
8437                    "To prawdziwa miłość. Zupełnie jak z bajki!",
8438                    "WIĘCEJ GIER",
8439                    "Więcej śmiesznych gier na:",
8440                    "ŁADOWANIE...",
8441                    "WYŚLIJ DO ZNAJOMYCH"
8442                ];
8443                reduceBoxes = 6;
8444                break;
8445            case "ru":
8446                loveArray = ["",
8447                    "ПРОВЕРИТЬ!",
8448                    "ЕЩЕ РАЗ",
8449                    "ВВЕДИТЕ ВАШЕ ИМЯ",
8450                    "ВВЕДИТЕ ЕГО/ЕЕ ИМЯ",
8451                    "Пожалуй, вы не лучшая пара...",
8452                    "Вы нравитесь друг другу, но, быть может, это просто дружба?",
8453                    "Хм, из вас может выйти хорошая пара!",
8454                    "В воздухе пахнет любовью! Вы просто созданы друг для друга!",
8455                    "Настоящая любовь – прямо как в сказке!",
8456                    "другие игры",
8457                    "Другие игры-приколы:",
8458                    "ЗАГРУЗКА...",
8459                    "ОТПРАВИТЬ ДРУГУ"
8460                ];
8461                reduceBoxes = 6;
8462                break;
8463            case "tr":
8464                loveArray = ["",
8465                    "HESAPLA!",
8466                    "TEKRAR DENE",
8467                    "İSMİNİZİ GİRİN",
8468                    "ONUN İSMİNİ GİRİN",
8469                    "Mükemmel bir çift olmayabilirsiniz...",
8470                    "Birbirinizi seviyorsunuz, ama belki de sadece arkadaş olarak?",
8471                    "Hmm iyi bir çift olabilirsiniz!",
8472                    "Havada aşk kokusu var! Melekleri bile kıskandıracak bir aşk!",
8473                    "İşte gerçek aşk. Sizinki bir peri masalı!",
8474                    "DIĞER OYUNLAR",
8475                    "Diğer Eğlenceli Oyunlar:",
8476                    "YÜKLENİYOR...",
8477                    "ОТПРАВИТЬ ДРУГУ"
8478                ];
8479                break;
8480            case "id":
8481                loveArray = ["",
8482                    "HITUNG!",
8483                    "COBA LAGI",
8484                    "MASUKKAN NAMA ANDA",
8485                    "MASUKKAN NAMA LAIN",
8486                    "Ini mungkin bukanlah pasangan yang terbaik...",
8487                    "Kalian saling menyukai, tapi mungkin hanya sebagai teman?",
8488                    "Hmm, ini bisa merupakan pasangan!",
8489                    "Cinta bersemi! Pasangan ini diciptakan di surga!",
8490                    "Ini ialah cinta sejati. Kisah dongeng ini milik anda!",
8491                    "PERMAINAN LAINNYA",
8492                    "Permainan lucu lainnya di:",
8493                    "PENGISIAN...",
8494                    "KIRIM KE TEMAN"
8495                ];
8496                reduceBoxes = 5.8;
8497                break;
8498            case "my":
8499                loveArray = ["",
8500                    "KIRA!",
8501                    "CUBA LAGI",
8502                    "MASUKKAN NAMA ANDA",
8503                    "MASUKKAN NAMA LAIN",
8504                    "Ini mungkin bukan pasangan terbaik...",
8505                    "Anda menyukai satu sama lain, tetapi mungkin hanya sebagai kawan?",
8506                    "Hmm, ini mungkin satu pasangan!",
8507                    "Kasih sayang di awang-awangan! Ia padanan dibuat di syurga!",
8508                    "Ini cinta sejati. Kisah dongeng ini milik anda!",
8509                    "LEBIH BENYAK PERMAINAN",
8510                    "Permainan lucu lainnya di:",
8511                    "MEMUAT...",
8512                    "KIRIM KE TEMAN"
8513                ];
8514                reduceBoxes = 6;
8515                break;
8516            case "jp":
8517                loveArray = ["",
8518                    "診断開始!",
8519                    "もう1度トライする",
8520                    "あなたの名前を入力して下さい",
8521                    "相手の名前を入力して下さい",
8522                    "お世辞にも相性が良いとは言えません...",
8523                    "お互いに好意はあるようですが、ただの友達止まりかも...?",
8524                    "なかなかの相性です!",
8525                    "あなた達2人は結ばれる運命にあります!",
8526                    " 真実の愛はそこに!2人で新たな愛の歴史を築きましょう!",
8527                    "他のゲームをプレイする",
8528                    "で楽しいゲームをもっと遊ぶ",
8529                    "ローディング...", //gt
8530                    "結果を友達に送る"
8531                ];
8532                reduceBoxes = 5;
8533                break;
8534            case "zh":
8535                loveArray = ["",
8536                    "診断開始!",
8537                    "再来一次",
8538                    "输入你的姓名",
8539                    "输入她/他的姓名",
8540                    "这不是一对很好的组合...",
8541                    "你们对对方有好感,但也许只是朋友。",
8542                    "嗯~不错的一组!",
8543                    "天生一对!",
8544                    "这是真正的爱!仿佛只在童话中才有的爱情!",
8545                    "更多游戏",
8546                    "更多有趣的游戏在:",
8547                    "读取中...",
8548                    "与朋友分享" //gt
8549                ];
8550                break;
8551            default:
8552                loveArray = ["Enter two first names in the boxes below and then click on the button to calculate the lurve! 😍<br><br>",
8553                    "CALCULATE!",
8554                    "TRY AGAIN",
8555                    "ENTER YOUR NAME",
8556                    "ENTER ANOTHER NAME",
8557                    "Hmmm. Maybe this isn't the best match...",
8558                    "You like each other. Maybe keep it as just friends?",
8559                    "Now this could be a match!",
8560                    "Kiss kiss! This is a match made in heaven!",
8561                    "Surely this is true love! A fairytale made real!",
8562                    "MORE GAMES",
8563                    "More funny games at:",
8564                    "LOADING...",
8565                    "SEND TO FRIENDS"
8566                ];
8567        }
8568
8569        if (isSchool) {
8570            loveTesterA.style.display = "none";
8571            loveTesterEmoji.style.display = "none";
8572        }
8573
8574        function showLoveTester() {
8575            loveTesterA.scrollIntoView({
8576                block: 'start',
8577                behavior: 'smooth'
8578            });
8579            loveTesterA.removeEventListener("click", showLoveTester);
8580            loveTesterA.innerHTML = "Love Tester";
8581            loveTesterA.style.paddingTop = "3vh";
8582            loveTesterB.style.paddingTop = "3vh";
8583            loveTesterA.style.marginBottom = "-5vh";
8584            loveTesterB.style.display = "block";
8585            loveTesterA.style.cursor = "default";
8586            loveTesterB.style.cursor = "default";
8587            resetLoveTester();
8588            gtag('event', ("Love Tester"), {
8589                'event_category': 'Bonus Content',
8590                'event_label': 'Love Tester Shown'
8591            });
8592        }
8593
8594        function resetLoveTester() {
8595
8596            scrollLoveTest();
8597
8598            var nameBoxes = "<form id='loveTest1'><input type=text class=loveTesterInput id=firstNameBox name=firstName maxlength=14><input type=text class=loveTesterInput id=secondNameBox name=secondName maxlength=12></form><div id=testInfoButton>info</div>";
8599
8600            var button = "<button id=calcButton class=redButton></button>";
8601
8602            loveTesterB.innerHTML = loveArray[0] + nameBoxes + "<br>" + button;
8603
8604            //calcButton.value="New Button Text";
8605
8606            calcButton.innerHTML = loveArray[1];
8607
8608            document.getElementsByName('firstName')[0].placeholder = loveArray[3];
8609            document.getElementsByName('secondName')[0].placeholder = loveArray[4];
8610
8611            calcButton.addEventListener("click", showLoveAnim);
8612
8613            if (shortLang == "en") {
8614                testInfoButton.style.display = "block";
8615            }
8616
8617            testInfoButton.addEventListener("click", showLoveInfo);
8618
8619
8620            if (reduceBoxes != 0) {
8621                reduceInputBoxes(reduceBoxes);
8622            }
8623
8624            firstNameBox.addEventListener("focus", scrollLoveTest);
8625            firstNameBox.addEventListener("blur", scrollLoveTest);
8626            secondNameBox.addEventListener("focus", scrollLoveTest);
8627            secondNameBox.addEventListener("blur", scrollLoveTest);
8628        }
8629        //TEMP
8630        //showLoveTester();
8631        //showLoveAnim();
8632
8633
8634        function scrollLoveTest() { //called several times to fix annoying scroll issue on mobile devices
8635            setTimeout(function () {
8636                loveTesterA.scrollIntoView({
8637                    block: 'start',
8638                    behavior: 'smooth'
8639                });
8640            }, 500);
8641        };
8642
8643        function showLoveAnim() {
8644
8645            scrollLoveTest();
8646            var names = document.getElementById("loveTest1");
8647            name1 = names.elements[0].value;
8648            name2 = names.elements[1].value;
8649            //if (name1.length > 1 && name2.length > 1) { //TEMP
8650
8651            if (checkName(name1) && checkName(name2)) {
8652
8653                var hBox = "<div id=loveContentBox><div id=onesAndZeros></div><div id=hBoxNames></div><div id=lovePercentage></div><div id=greenScreen></div></div>";
8654                loveTesterB.innerHTML = hBox;
8655                hBoxNames.innerHTML = name1 + " + " + name2;
8656                window.onresize = resizeLoveContentBox;
8657                resizeLoveContentBox();
8658
8659                var loveAnimTimer = setInterval(function () {
8660                    var i;
8661                    var binaryString = "";
8662                    for (i = 0; i < 999; i++) {
8663                        if (Math.random() > 0.5) {
8664                            binaryString += "1";
8665                        } else {
8666                            binaryString += "0";
8667                        }
8668                    }
8669
8670                    onesAndZeros.innerHTML = binaryString;
8671                    lovePercentage.innerHTML = Math.floor(Math.random() * 100) + "%";
8672                }, 100);
8673
8674                setTimeout(function () {
8675                    clearInterval(loveAnimTimer);
8676                    showLoveResult();
8677                }, 3500);
8678
8679            }
8680        }
8681
8682        function showLoveResult() {
8683
8684            var hBox = "<div id=loveContentBox>  <div id=loveBackground></div> <div id=hBoxNames></div> <div id=hBoxTagline></div> <div id=lovePercentage></div> <div id=whiteSheet></div> </div>";
8685
8686            var button = "<button id=retestButton class=redButton></button><button id=tweetLoveTestButton class=blueButton></button>";
8687
8688            loveTesterB.innerHTML = hBox + button;
8689
8690            retestButton.innerHTML = loveArray[2];
8691            tweetLoveTestButton.innerHTML = "TWEET";
8692
8693            //whiteSheet.style.animationPlayState = "running";
8694            loveContentBox.style.border = "2vmin outset red";
8695
8696            lovePercentage.style.color = "white";
8697            lovePercentage.style.fontSize = "16vmin";
8698
8699            hBoxNames.style.color = "white";
8700            hBoxNames.innerHTML = name1 + " + " + name2;
8701
8702            displayPercentage = calcNames(name1, name2);
8703
8704            lovePercentage.innerHTML = displayPercentage + "%";
8705
8706            tagline = loveArray[5];
8707            if (displayPercentage > 40) tagline = loveArray[6];
8708            if (displayPercentage > 60) tagline = loveArray[7];
8709            if (displayPercentage > 80) tagline = loveArray[8];
8710            if (displayPercentage == 100) tagline = loveArray[9];
8711
8712
8713            hBoxTagline.innerHTML = tagline;
8714
8715            playSound('bigreveal');
8716
8717            if (Math.random() < 0.001) { //submit in 1000 results for checking
8718                gtag('event', (displayPercentage + "-" + name1 + "-" + name2 + "-" + lang), {
8719                    'event_category': 'Bonus Content Test1',
8720                    'event_label': ('Love Tester Result')
8721                });
8722            }
8723
8724            retestButton.addEventListener("click", resetLoveTester);
8725            tweetLoveTestButton.addEventListener("click", tweetLoveTestResult);
8726
8727            resizeLoveContentBox();
8728        }
8729
8730        function tweetLoveTestResult() {
8731            //console.log(name1, name2, displayPercentage, tagline);
8732            var tweetOutput = name1 + " 💕 " + name2 + " = " + displayPercentage + "%! " + tagline + " #friv #lovetester Check your crush at... https://www.friv.com/z/frivdaily/lovetester/twitter.html";
8733            window.open("https://twitter.com/intent/tweet?text=" + encodeURIComponent(tweetOutput));
8734        }
8735
8736
8737        function showLoveInfo() {
8738
8739            scrollLoveTest();
8740
8741            var hBox = "Thanks for trying out our just-for-fun Love Tester!<br><br>If you're interested in how it works, the algorithm assigns a numerical value to the letters in each name, and adds them all together. The letters L-O-V-E-S are given extra weight, so if the two names are both 'joined' in this special way by a high proportion of their letters, they will score more highly - Lesley + Steve for example. Try also Poo and Pee.<br><br>Be playful. Keep love in your heart. x<br><br>";
8742
8743            var button = "<button id=retestButton class=redButton>Back</button>";
8744
8745            loveTesterB.innerHTML = hBox + button;
8746
8747            gtag('event', 'Info Box Shown', {
8748                'event_category': 'Bonus Content',
8749                'event_label': ('Love Tester Result')
8750            });
8751
8752            retestButton.addEventListener("click", resetLoveTester);
8753        }
8754
8755        function resizeLoveContentBox() {
8756            loveContentBox.style.height = (loveContentBox.offsetWidth / 2) + "px";
8757        }
8758
8759        function checkName(name) {
8760            name = name.replace(/\s/g, ''); //remove any spaces
8761
8762            var numbers = /[0-9]/g;
8763            //var numbers = /^[0-9]+$/;
8764            if (name.match(numbers) || name.length < 2) {
8765
8766                calcButton.innerHTML = "@#?*!";
8767
8768                setTimeout(function () {
8769                    calcButton.innerHTML = loveArray[1];
8770                }, 1000);
8771
8772
8773                return false;
8774            } else {
8775
8776                return true;
8777            }
8778
8779        }
8780
8781        function checkStringForNumbers(input) {
8782            let str = String(input);
8783            for (let i = 0; i < str.length; i++) {
8784
8785                if (!isNaN(str.charAt(i))) { //if the string is a number, do the following
8786                    return true;
8787                }
8788            }
8789        }
8790
8791        function normalizeName(name) {
8792            name = name.replace(/\s/g, ''); //remove any spaces
8793            name = name + name + name + name;
8794            name = name.toUpperCase().slice(0, 6);
8795            return name;
8796        }
8797
8798        function calcNames(first, second) {
8799            first = normalizeName(first);
8800            second = normalizeName(second);
8801            var loveCount = 0;
8802            var i;
8803            for (i = 0; i < first.length; i++) {
8804                if (first.charCodeAt(i) < 91) { //"z"
8805                    loveCount += (first.charCodeAt(i) - 64);
8806                } else {
8807                    loveCount += 77; //"m"
8808                }
8809                if (first.charCodeAt(i) == 76 || first.charCodeAt(i) == 79 || first.charCodeAt(i) == 86 || first.charCodeAt(i) == 69 || first.charCodeAt(i) == 83) { // Bonus for names containing characters in "LOVES"
8810                    loveCount += 20;
8811                }
8812            }
8813
8814            for (i = 0; i < second.length; i++) {
8815                if (second.charCodeAt(i) < 91) { //"z"
8816                    loveCount += (second.charCodeAt(i) - 64);
8817                } else {
8818                    loveCount += 77; //"m"
8819                }
8820                if (second.charCodeAt(i) == 76 || second.charCodeAt(i) == 79 || second.charCodeAt(i) == 86 || second.charCodeAt(i) == 69 || second.charCodeAt(i) == 83) { // Bonus for names containing characters in "LOVES"
8821                    loveCount += 20;
8822                }
8823            }
8824
8825
8826            //to cope with large scores (cyrilic-type alphabets etc.)...
8827            while (loveCount > 370) { //adjust for cyrilic
8828                loveCount -= 155;
8829            }
8830
8831            loveCount = Math.floor(loveCount * 0.35); //adjust multiplier
8832            if (loveCount > 100) loveCount = 100;
8833            if (loveCount < 10) loveCount += loveCount;
8834
8835            return loveCount;
8836        }
8837
8838
8839        //BREAKPOINT
8840        ////////////
8841        if (breakPoint) {
8842            gtag('event', 'Breakpoint 13', {
8843                'event_category': 'Debug',
8844                'event_label': 'Breakpoints'
8845            });
8846        }
8847        ////////////
8848        ////////////
8849
8850
8851
8852
8853
8854
8855
8856        //BONUS SECTION - chiptune
8857        //////////////////////////
8858        var allowChiptuneVoting = true;
8859        var chiptunePlaying = false;
8860        var firstRun = true;
8861
8862        function playChiptune() {
8863
8864            if (firstRun) {
8865                chiptuneAudio.src = "z/frivdaily/chiptunes/" + date + ".mp3";
8866                chiptuneAudio.loop = true;
8867            }
8868
8869            if (chiptunePlaying) {
8870                pauseChiptune();
8871            } else {
8872                chiptune.innerHTML = "Chiptune Playing";
8873                chiptuneAudio.play();
8874                funnyVideoContainer.pause();
8875                storyAudio.pause();
8876                logoAudio.pause();
8877                chiptunePlaying = true;
8878                chiptune.style.animationPlayState = "running";
8879                gtag('event', ("Chiptune : " + date), {
8880                    'event_category': 'Bonus Content',
8881                    'event_label': 'Chiptune Played'
8882                });
8883            }
8884            firstRun = false;
8885        }
8886
8887        function pauseChiptune() {
8888            chiptune.innerHTML = "Chiptune Paused";
8889            chiptuneAudio.pause();
8890            chiptunePlaying = false;
8891            chiptune.style.animationPlayState = "paused";
8892        }
8893
8894        function contentVote(content, vote) {
8895            var theDate = new Date();
8896            var date = theDate.getDate();
8897            var tick = "✅";
8898            switch (content) {
8899                case "Chiptune":
8900                    chiptuneBottomBar.innerHTML = tick;
8901                    break;
8902                case "Joke":
8903                    jokeBottomBar.innerHTML = tick;
8904                    break;
8905                case "Famous Quote":
8906                    famousQuoteBottomBar.innerHTML = tick;
8907                    break;
8908                case "Funny Video":
8909                    funnyVideoBottomBar.innerHTML = tick;
8910                    break;
8911                case "Amazing Picture":
8912                    amazingImageBottomBar.innerHTML = tick;
8913                    break;
8914                case "Fact":
8915                    frivolousFactBottomBar.innerHTML = tick;
8916                    break;
8917                case "Limerick":
8918                    limerickBottomBar.innerHTML = tick;
8919                    break;
8920                case "Tongue Twister":
8921                    tongueTwisterBottomBar.innerHTML = tick;
8922                    break;
8923                case "Story":
8924                    storyBottomBar.innerHTML = tick;
8925                    //temp
8926                    gtag('event', (content + " : " + stories[selectedStory][0] + " " + vote), {
8927                        'event_category': 'Bonus Content',
8928                        'event_label': (content + "X Voted")
8929                    });
8930                    break;
8931                case "Street Art":
8932                    streetArtBottomBar.innerHTML = tick;
8933                    break;
8934                case "Cute Picture":
8935                    cuteImageBottomBar.innerHTML = tick;
8936                    break;
8937                case "Daily GIFs":
8938                    dailyGIFBottomBar.innerHTML = tick;
8939                    break;
8940                case "Puzzle":
8941                    puzzleBottomBar.innerHTML = tick;
8942                    break;
8943                case "Optical Illusion":
8944                    opticalIllusionBottomBar.innerHTML = tick;
8945                    break;
8946                default:
8947
8948            }
8949
8950
8951            gtag('event', (content + " : " + date + " " + vote), {
8952                'event_category': 'Bonus Content',
8953                'event_label': (content + " Voted")
8954            });
8955
8956        }
8957
8958        //BONUS SECTION - define and show riddles
8959        /////////////////////////////////////////
8960
8961        var riddleDificulty = "Easy";
8962        var tapText = "Tap For The Answer!";
8963
8964        var riddles1 = [
8965            ["What can point in every direction but can't reach the destination by itself.", "Your finger."],
8966            ["What question can someone ask all day long, always get totally different answers, and yet all the answers can be correct?", "'What time is it?'"],
8967            ["What goes up when the rain comes down?", "An umbrella."],
8968            ["A horse was tied to a five foot long rope and the horse's food was 15 feet away from the horse. How did the horse reach the food?", "The rope wasn't tied to anything - he simply walked over to it."],
8969            ["What makes a pair of shoes?", "Two shoes."],
8970            ["Three men fall from a boat and plunge beneath the waves, but only two get their hair wet. Why?", "The third man was bald."],
8971            ["Bob's father had three sons named Tom, Dick and ..?", "Bob."],
8972            ["What is the only common four-letter English word that ends in 'eny'?", "Deny."],
8973            ["Tall I am young, short I am old. While with life I glow, wind is my foe. What am I?", "A candle."],
8974            ["How can you make seven even?", "Remove the letter 's'."],
8975            ["I am full of holes but I can still hold water. What am I?", "A sponge"],
8976            ["Five apples are in a basket. How do you divide them among five girls so that each girl gets an apple, but one apple remains in the basket?", "Give the fifth girl her apple in the basket."],
8977            ["You are my brother but I am not your brother. Who am I?", "Your sister."],
8978            ["Which is correct: 'The yolk of an egg are white' or 'The yolk of an egg is white'?", "Neither. The yolk of an egg is yellow."],
8979            ["What can fill a room but take up no space?", "Laughter."],
8980            ["What has one head, one foot, and four legs?", "A bed."],
8981            ["The more you take, the more you leave behind. What am I?", "Footsteps."],
8982            ["What has a head, a tail, is brown, and has no legs?", "A c
8982oin."],
8983            ["Who are people you see everyday but you don’t know?", "Strangers."],
8984            ["Legend tells of an ancient invention that allows people to see through walls. What is it?", "A window."],
8985            ["Three eyes have I, all in a row; when the red one opens, no one can go. What am I?", "A set of traffic lights."],
8986            ["A one-seeded fruit I may be, but all of your calendars are full of me. What am I?", "Dates."],
8987            ["What has many keys, but can't open even a single door?", "A piano."],
8988            ["Before Mount Everest was discovered, what was the highest mountain on Earth?", "Mount Everest."],
8989            ["What time of day is spelled the same forwards and backwards?", "Noon."],
8990            ["How many bricks does it take to complete a 2,000 square foot building made entirely of brick?", "Only one. It's the last brick that completes the building."],
8991            ["Joseph builds a one storey house made entirely of redwood. He paints the roof, the walls, the floors, the ceilings - EVERYTHING in red paint. What colour would the stairs be?", "What stairs? It is a one storey house."],
8992            ["Look carefully. Can you spot the the mistake? ABCDEFGHIJKLMNOPQRSTUVWXYZ", "The word 'the' is repeated."],
8993            ["Mr. and Mrs. Smith have six sons and each son has one sister. How many people are in the Smith family?", "Nine. The two parents. Six sons. One daughter."],
8994            ["A bus driver was heading down a street. He went right past a stop sign without stopping. Next he turned left where there was a 'no left turn' sign. Finally he went the wrong way down a one-way street. He didn't break any traffic laws. How?", "He was walking."],
8995            ["What has one foot but no arms or legs, yet it carries its house?", "A snail."],
8996            ["What are moving left to right, right now?", "Your eyes!"],
8997            ["Which wheel does not rotate when a car turns right?", "The spare wheel."],
8998            ["I run up and down the stairs without moving. What am I?", "The stair carpet."],
8999            ["What must you break in order to use it?", "An egg."],
9000            ["There are 20 people in an empty, square room. Each person has full sight of the entire room and everyone in it without turning his head or body, or moving in any way (other than the eyes). Where can you place an apple so that all but one person can see it?", "Place the apple on one person's head."]
9001        ];
9002
9003        var riddles2 = [
9004            ["When I point up, it's bright. When I point down, it's dark. What am I?", "A light switch."],
9005            ["What is black when you buy it, red when you use it, and gray when you throw it away?", "Charcoal."],
9006            ["It was the occasion of the annual naval show. A new boat was presented, sailed out of the harbour and sank. The crowds cheered. Why?", "It was a submarine."],
9007            ["To what question, while the answer is indeed true, can you never honestly say yes to?", "Are you asleep?"],
9008            ["If one man can dig one hole in two days, how long will it take for two men to dig half a hole?", "There's no such thing as half a hole!"],
9009            ["In a pond there are some flowers with some bees hovering over them. How many flowers and bees are there if both the following statements are true: 1. If each bee lands on a flower, one bee doesn't get a flower. 2. If two bees share each flower, there is one flower left out.", "4 bees and 3 flowers."],
9010            ["What has a mouth but never eats, a bed but never sleeps, and has banks but no money?", "A river."],
9011            ["It was Peter's first day on the soccer team and he scored a goal within just 5 minutes. His teammates congratulated him. When he scored a second goal, he was scolded. Why?", "His second goal was an own goal."],
9012            ["Roadworks meant a school bus has to take a different route to school one day - under a low bridge. When the driver came to the bridge, he got out and saw that the bus was just a pencil width too tall, and that he would have to turn back. Sophie, a 5-year old boffin called for quiet. She said she had a solution which w
9012ould require only her index finger and thumb. What was it?", "Sophie let some air out of the tyres."],
9013            ["A room with no windows or doors. Walks in the night, grows in a day. Is found where there is death and decay.", "Mushrooms."],
9014            ["A nonstop train leaves London for Edinburgh at 60 mph. Another nonstop train leaves Edinburgh for London at 40 mph. How far apart are the trains one hour before they pass each other?", "100 miles."],
9015            ["A box without hinges, key or lid, Yet golden treasure inside is hid.", "An egg."],
9016            ["Two camels are facing in opposite directions in the open desert. One is facing due east and one is facing due west. How can they manage to see each other without walking around or turning around or moving their heads? ", "The two camels are standing in opposite directions facing each other."],
9017            ["Can you name three consecutive days without using the words Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, or Sunday?", "Yesterday, Today, and Tomorrow."],
9018            ["What comes once in a minute, twice in a moment, but never in a thousand years?", "The letter 'm'."],
9019            ["What do the numbers 11, 69, 88, and 96 all have in common?", "They all read the same upside down."],
9020            ["Re-arrange the letters... R S W T D U O O J N E ...to spell just one word.", "JUST ONE WORD."],
9021            ["A man rode out of town on Sunday, he stayed a whole night at a hotel and rode back to town the next day on Sunday. How is this possible?", "His horse was called Sunday."],
9022            ["You can hear me and control me, but never see me or touch me. What am I?", "Your voice."],
9023            ["What is the first thing you see in an emergency but you only see it twice in a lifetime?", "The letter ‘e’."],
9024            ["What stays in a corner but travels around the world?", "A postage stamp."],
9025            ["What has keys but no locks, space but no room, and you can enter but you can't exit.", "A keyboard."],
9026            ["What when read from right to left is a servant but when read from left to right is a ruler?", "God."],
9027            ["I am a seed with three letters in my name. Take away the last two and I still sound the same. What am I?", "Pea."],
9028            ["What is the building that you leave without ever having entered.", "The hospital you were born in."],
9029            ["What belongs to you, but other people use it more than you?", "Your name."],
9030            ["What is it that even the most careful person always overlooks?", "Their nose."],
9031            ["What has thirteen hearts but no lungs?", "A deck of cards."],
9032            ["What do you give to others but still try and keep?", "Your word."],
9033            ["I am heavy forwards and not backwards. What am I?", "Ton."],
9034            ["I am taken from the ground, baked in an oven, and shut up in a wooden case from which I am never released. I am used by almost everybody.", "Pencil lead."],
9035            ["They have not flesh, nor feathers, nor scales, nor bone. Yet they have fingers and thumbs of their own. What are they?", "Gloves."],
9036            ["What has six faces but does not wear makeup. It also has twenty-one eyes but cannot see?", "A die. Two dice would have double."],
9037            ["Two fathers and two sons went fishing one day. They were there the whole day and only caught 3 fish. One father said, that is enough for all of us, we will have one each. How can this be possible?", "There was the father, his son, and his son's son. This equals 2 fathers and 2 sons for a total of 3."],
9038            ["I have a little house in which I live all alone. It has no doors or windows, and if I want to go out I must break through the wall. What am I?", "A chick in an egg."],
9039            ["Two two letters can you use to spell the five letter word 'candy'?", "c and y."]
9040        ];
9041
9042        var riddles3 = [
9043            ["Poor people have it. Rich people need it. If you eat it you die. What is it?", "Nothing"],
9044            ["It has a long neck, a name of a bird, feeds on the cargo of ships, but it's not alive. What is it?", "A crane."],
9045            ["Never resting, never still. Moving silently from hill to hill. It does not walk, run or trot, All is cool where it is not. What is it?", "Sunshine."],
9046            ["Peter is looking forward to his independence - leaving home. He's 18 tomorrow! Washed and clean shaven he leaves the house to celebrate in town. 'Be back by the next sunrise!' says his Father. Peter does get back by the next sunrise, but with a full beard. How?", "Peter lives in Alaska where there are no sunrises for six months."],
9047            ["I am not alive, but I grow; I don't have lungs, but I need air; I don't have a mouth, but water kills me. What am I?", "Fire."],
9048            ["What 8 letter word can have a letter taken away and it still makes a word. Take another letter away and it still makes a word. Keep on doing that until you have one letter left. What is the word?", "Starting. It becomes... staring, string, sting, sing, sin, in, I."],
9049            ["You have me today, tomorrow you'll have more. As your time passes, I'm not easy to store. I don't take up space, but I'm only in one place. I am what you saw, but not what you see. What am I?", "Memories."],
9050            ["There was a green house. Inside the green house there was a white house. Inside the white house there was a red house. Inside the red house there were lots of babies. What am I?", "A watermelon"],
9051            ["You are walking through a dark and dangerous forest when you meet a fork in the path. Two twins live in a cottage nearby, and they tell you they know which path will lead you out of the forest. You can ask the twins only one question. Except... one always lies and the other always tells the truth. You don't know 
9051which is which. What do you ask?", "You ask each twin 'What would your brother say is the correct path?'. So, let's say the correct path is the left one. If you ask the liar 'What would your brother say is the correct path?' The liar would know his brother was honest and he would say the left side, but since the liar lies, he would say right. If you asked the honest twin the same question, he would say right, because he knows his brother will lie. Therefore, you would know that the correct path is the left one."],
9052            ["A man wanted to enter an exclusive club but did not know the password that was required. He waited by the door and listened. A club member knocked on the door and the doorman said, 'twelve.' The member replied, 'six ' and was let in. A second member came to the door and the doorman said, 'six.' The member replied, 'three' and was let in. The man thought he had heard enough and walked up to the door. The doorman said ,'ten' and the man replied, 'five.' But he was not let in. What should have he said?", "'Three'. The doorman lets in those who answer with the number of letters in the word the doorman says."],
9053            ["What seven-letter word is spelled the same way backwards and forewords?", "Racecar."],
9054            ["What ten-letter word can you type using only the top row of letters on a standard keyboard?", "Typewriter"],
9055            ["When is 1600 plus 25 and 1700 minus 35 the same thing?", "When it's time on the 24-hour clock."],
9056            ["I'm white, and used for cutting and grinding. When I'm damaged, I'm usually removed or filled.", "A tooth."],
9057            ["A time when I'm green, a time when I'm brown, but both of these times cause me to frown. But just in between, for a very short while, I'm perfect and yellow with just cause to smile. What am I?", "A banana."],
9058            ["Railroad Crossing, look out for the cars. Can you spell that, without any R's?", "'that'."],
9059            ["You have three stoves: a gas stove, a wood stove, a coal stove, and one match. Which should you light first?", "The match."],
9060            ["What is lighter than a feather but the world's strongest man can't hold for long?", "His breath."],
9061            ["A pet shop had a parrot with a sign on its cage which read 'Parrot repeats everything it hears'. Isobel bought the parrot and for two weeks she spoke to it lots but it didn't say a word. She returned the parrot but the shopkeeper said he hadn't lied about the parrot. How?", "The parrot was deaf."],
9062            ["Three playing cards in a row. Can you name them with these clues? There is a two to the right of a king. A diamond will be found to the left of a spade. An ace is to the left of a heart. A heart is to the left of a spade. What are the cards?", "Ace of Diamonds, King of Hearts, Two of Spades."],
9063            ["A lady has septuplets. Seven babies at once! All girls! Naming them was a real challenge. She names the first six: Dominique, Regis, Michelle, Fawn, Sophie and Lara. What will she name her last child? Jessica, Katie, Abby or Tilly?", "Tilly. She seems to follow the scale Do, Re, Me, Fa, So, La, and then Ti."],
9064            ["If you have me, you want to share me. If you share me, you haven't got me. What am I?", "A secret."],
9065            ["You use a knife to slice my head and then weep beside me when I am dead. What am I?", "An onion."],
9066            ["If a peacock lays an egg exactly on the top of a steep hill and the wind is blowing east, which way will the egg roll?", "It won't roll at all. It doesn't exist. Peahens lay eggs!"],
9067            ["Tool of thief, toy of queen. Always used to be unseen. Sign of joy, sign of sorrow. Giving all likeness borrowed. What am I?", "A mask."],
9068            ["I am the beginning of the end, and the end of time and space. I am essential to creation, and I surround every place.", "The letter 'e'. End, timE, spacE, Every placE."],
9069            ["If you were running a race, and you passed the person in 2nd place, what place would you be in now?", "2nd place."],
9070            ["A man lies breathless on a large haystack in the middle of a field. He has hurt his leg. He carries with him an unopened package. As he neared the haystack, felt certain he would injure himself. How and why?", "The man's parachute did not open."],
9071            ["Two girls have the same parents and were born at the same hour of the same day of the same month, but they are not twins. How can this be possible?", "They were not born in the same year."],
9072            ["How can you take 2 from 5 and leave 4?", "FIVE. Remove the 2 letters F and E from five and 
9072you have IV."],
9073            ["I am a word of six; my first three letters refer to an automobile; my last three letters refer to a household animal; my first four letters is a fish; my whole is found in your room. What am I?", "A carpet."],
9074            ["Martha and her younger brother were quarreling. Their mother was tired of the fighting and decided to punish them by making them stand on the same piece of newspaper in such a way that they couldn't touch each other. The sheet of paper remained whole. How did she accomplish this?", "Martha's mother slid the newspaper under a door, each sibling standing on each side."],
9075            ["A man was doing his job when he accidentally tore his suit a little. He suddenly felt breathless. Why?", "He was an astronaut on a space walk."],
9076            ["What has a foot on each side and one in the middle?", "A yardstick."]
9077        ];
9078
9079        var dispRiddle = "Daily Riddle<br><br>" + riddles1[date][0];
9080        var dispRiddleAnswer = riddles1[date][1];
9081
9082
9083
9084
9085        switch (specialDay) {
9086            case "valentinesDay":
9087                dispRiddle = "Valentine's Day Riddle<br><br>" + "You can touch me. You can melt me. You can break me. You should win me if you want to be mine. What am I?";
9088                dispRiddleAnswer = "A heart.";
9089                riddleChangeDifficulty.style.display = "none";
9090                break;
9091            case "aprilFoolsDay":
9092                dispRiddle = "April Fools Day Riddle<br><br>" + "The king was bored in his palace. He asked his courtiers to fetch a dozen of the finest fools from his kingdom to entertain him. A coach was sent out. In the first town, five fools got on the coach. In the next town three more got on, but two of the original fools got a fit of nerves and left the coach. Out in the villages, four more fools got on the coach, but one had to get off as he had a sniffle coming on. What colour was the King's cloak? ";
9093                dispRiddleAnswer = "Purple.";
9094                riddleChangeDifficulty.style.display = "none";
9095                break;
9096            case "christmasEve":
9097                dispRiddle = "Christmas Eve Riddle<br><br>" + "When does Christmas come before Easter?";
9098                dispRiddleAnswer = "In a dictionary!";
9099                riddleChangeDifficulty.style.display = "none";
9100                break;
9101            case "christmasDay":
9102                dispRiddle = "Christmas Day Riddle<br><br>" + "I get chopped, decorated and get wings at my top. Later, sharp things do I drop. What am I?";
9103                dispRiddleAnswer = "A Christmas tree!";
9104                riddleChangeDifficulty.style.display = "none";
9105
9106                break;
9107            case "newYearsDay":
9108                dispRiddle = "New Year's Day Riddle<br><br>" + "Christmas and New Year's Day occur exactly one week apart. So, a New Year's Day that occurs right after Christmas should be on the same day of the week, right? But in the year 2029 Christmas will occur on a Thursday and New Year's Day will be on a Wednesday. How?";
9109                dispRiddleAnswer = "Trick question! In 2029 - as with any year, New Year Day is on January 1st - at the very START of that year. In 2029 - as with any year - Christmas is on December 25th, at the END of that year. These dates are 51 weeks and 2 days apart, not one week apart!";
9110                riddleChangeDifficulty.style.display = "none";
9111                break;
9112            default:
9113            // code block
9114        }
9115
9116        riddleA.innerHTML = dispRiddle;
9117        riddleB.innerText = tapText; //innerHTML causes problems in older (ios 9) Safari. Quotes?
9118
9119        function showRiddleAnswer() {
9120            riddleB.innerText = dispRiddleAnswer;
9121            riddleA.style.cursor = "default";
9122            riddleB.style.cursor = "default";
9123            funnyVideoContainer.pause();
9124            gtag('event', ("Riddle : " + riddleDificulty + " : " + date), {
9125                'event_category': 'Bonus Content',
9126                'event_label': 'Riddle Answer Shown'
9127            });
9128        }
9129
9130        function changeRiddleDifficulty() {
9131            riddleChangeDifficulty.style.fontSize = "4vmin";
9132            switch (riddleDificulty) {
9133                case "Easy":
9134                    riddleChangeDifficulty.innerHTML = "IQ<br>120+";
9135                    dispRiddle = "Today's<br>Hard Riddle<br><br>" + riddles2[date][0];
9136                    dispRiddleAnswer = riddles2[date][1];
9137                    riddleA.innerHTML = dispRiddle;
9138                    riddleB.innerText = tapText;
9139                    riddleA.style.cursor = "pointer";
9140                    riddleB.style.cursor = "pointer";
9141                    riddleDificulty = "Hard";
9142
9143                    break;
9144                case "Hard":
9145                    riddleChangeDifficulty.innerHTML = "IQ<br>140+";
9146                    dispRiddle = "Today's<br>Extra Hard Riddle<br><br>" + riddles3[date][0];
9147                    dispRiddleAnswer = riddles3[date][1];
9148                    riddleA.innerHTML = dispRiddle;
9149                    riddleB.innerText = tapText;
9150                    riddleA.style.cursor = "pointer";
9151                    riddleB.style.cursor = "pointer";
9152                    riddleDificulty = "Extra Hard";
9153                    break;
9154                default:
9155                    riddleChangeDifficulty.innerHTML = "IQ<br>100+";
9156                    dispRiddle = "Today's Riddle<br><br>" + riddles1[date][0];
9157                    dispRiddleAnswer = riddles1[date][1];
9158                    riddleA.innerHTML = dispRiddle;
9159                    riddleB.innerText = tapText;
9160                    riddleA.style.cursor = "pointer";
9161                    riddleB.style.cursor = "pointer";
9162                    riddleDificulty = "Easy";
9163            }
9164        }
9165
9166
9167
9168
9169        //BREAKPOINT
9170        ////////////
9171        if (breakPoint) {
9172            gtag('event', 'Breakpoint 14', {
9173                'event_category': 'Debug',
9174                'event_label': 'Breakpoints'
9175            });
9176        }
9177        ////////////
9178        ////////////
9179
9180
9181
9182
9183
9184        //BONUS SECTION - define and show limericks (ordered based on votes)
9185        ////////////////////////////////////////////////////////////////////
9186        var limericks = [
9187            "",
9188            "An artistic young man called Joe,<br>To an art class decided to go.<br>The teacher said, &quot;Not right!<br>Your page is all white!&quot;<br>Joe said, &quot;It's a polar bear in the snow.&quot;",
9189            "As a beauty I'm not a great star,<br>There are others more handsome by far.<br>But my face — I don't mind it,<br>Because I'm behind it —<br>It's the people in front that I jar.",
9190            "There was a young lady of Kent,<br>Whose nose was most awfully bent.<br>She followed her nose,<br>One day, I suppose,<br>And nobody knows where she went.",
9191            "There is a young schoolboy named Mason,<br>Whose Mom cuts his hair with a basin.<br>When he stands in one place,<br>With a scarf round his face,<br>It's a mystery which way he’s facin'!",
9192            "There was a young lady of Niger,<br>Who smiled as she rode on a tiger;<br>They returned from the ride<br>With the lady inside,<br>And a smile on the face of the tiger.",
9193            "There once was a crazy old Greek,<br>Who sat drinking water all week.<br>And he took such a dose,<br>That when he arose,<br>He gurgled where other folks speak!", //1 hit
9194            "There was a young fellow of Michigan,<br>To see him I never could wish again.<br>He would eat of ice-cream<br>Till with pain he would scream,<br>Then order another big dish again.", //unique
9195            "There once was a man from Dundee,<br>Who simply loved to be near the sea.<br>When he once toppled in,<br>A shark said with a grin,<br>&quot;Don't you look good for my tea!&quot;", //oliver
9196            "A courageous old fellow of Settle,<br>Instead of a hat, wore a kettle.<br>When the people derided,<br>Said he, &quot;I've decided<br>To show all the neighbours my mettle!&quot;", //unique
9197            "I'd rather have fingers than toes,<br>I'd rather have ears than a nose.<br>And as for my hair,<br>I'm glad it's all there,<br>I'll be awfully sad, when it goes.",
9198            "There was a fisherman named Fisher,<br>Who fished for some fish in a fissure.<br>Till a fish with a grin,<br>pulled the fisherman in.<br>Now they're fishing the fissure for Fisher.",
9199            "There once was a chap of Salt Lake,<br>Who some fireworks decided to make.<br>But he dropped his cigar<br>In the gunpowder jar.<br>There once was a chap of Salt Lake.", //unique
9200            "A fellow jumped off a high wall,<br>And had a most terrible fall.<br>He went back to bed,<br>With a bump on his head,<br>That's why you don't jump off a wall.",
9201            "There once was a chef with a hook,<br>Who was for a captain mistook.<br>When his ship soon sunk,<br>He dived off for a dunk,<br>Wishing he'd stayed as a cook.", //oliver
9202            "A rather large lady named Perkins,<br>Was exceedingly fond of small gherkins,<br>She went out to tea,<br>And ate forty-three,<br>Which pickled her internal workin's.", //unique
9203            "There was an odd fellow named Gus,<br>When travelling he made such a fuss.<br>He was banned from the train,<br>Not allowed on a plane,<br>And now travels only by bus.",
9204            "There was a young boy of Bengal,<br>Who attended a fancy-dress ball.<br>He went, just for fun,<br>Dressed up as a bun,<br>And a dog ate him up in the hall.",
9205            "There was a young lad of Tralee,<br>Who was bothered to death by a flea,<br>So he put out the light,<br>Saying, &quot;Now he can't bite,<br>For he'll never be able to see!&quot;", //unique
9206            "I got a front door for my hall,<br>This replacement I bought was too tall.<br>So I hacked it and chopped it,<br>And carefully lopped it,<br>And now the darn thing is too small.",
9207            "Ride a cock-horse to Banbury Cross,<br>That was the old-fashioned method, of course.<br>You now drive a car,<br>And you rush without heeding,<br>Till a policeman appears and fines you for speeding.", //unique
9208            "There once was an old man of Esser,<br>Whose knowledge grew lesser and lesser,<br>It at last grew so small<br>He knew nothing at all<br>And now he's a college professor!",
9209            "I'm really determined and keen,<br>
9209To start giving this house a spring clean.<br>I will do it I say,<br>Yes, I'll do it today,<br>Well, I'll do it tomorrow, I mean.",
9210            "The Camel's mildness of soul,<br>Is a lie just as black as is coal,<br>For the brute has a kick<br>Like a half-ton of brick<br>That would knock any chap for a goal!", //unique
9211            "There was an old man of Dundee,<br>Who lived at the top of a tree.<br>Said he, &quot;So long as I'm here,<br>There's surely no fear<br>Of my ever being drowned in the sea.&quot;", //unique
9212            "An ambitious young fellow named Matt,<br>Tried to parachute using his hat.<br>Folks below looked so small,<br>As he started to fall,<br>Then got bigger and bigger and SPLAT!",
9213            "There was an old man of Darjeeling,<br>Who boarded a bus bound for Ealing.<br>He saw on the door,<br>&quot;Don't spit on the floor.&quot;<br>So he lay down and spat on the ceiling!",
9214            "A haughty old lady from Ghent,<br>Whose clothes were as big as a tent,<br>Gave an icy cold stare<br>At an ill-fated chair,<br>Then she sat on the thing and it bent!", //unique
9215            "The giraffe is a marvellous beast,<br>He is short from the West to the East,<br>But from North, at his mouth,<br>To his tummy down South,<br>It's a ten-minute swallow, at least!", //1 hit
9216            "A cheerful old bear at the zoo,<br>Could always find something to do.<br>When it bored him, you know, <br>To walk to and fro,<br>He reversed it and walked fro and to.",
9217            "There was an old lady of Hospet,<br>Who ate sixty-five eggs for a bet,<br>When asked &quot;Are you faint?&quot;<br>She replied &quot;No, I ain't<br>But I've surely come out in a sweat!&quot;", //unique-mine
9218            "A Tudor who tooted the flute<br>tried to tutor two tooters to toot.<br>Said the two to the tutor,<br>&quot;Is it harder to toot,<br>or to tutor two tooters to toot?&quot;", //31
9219            //halfway
9220            "An elderly man called Keith,<br>Mislaid his set of false teeth.<br>Been laid on a chair,<br>He'd forgot they were there,<br>Sat down, and was bitten beneath.",
9221            "There was an old fellow of Tonga,<br>Who was frightened to death by a conger.<br>And a witch-doctor said,<br>When he found he was dead,<br>&quot;What a pity his nerves were not stronger!&quot;", //2 hits, 1925 newspapers
9222            "There was a young lady named Rose,<br>Who'd a large wart on her nose.<br>When she had it removed,<br>Her appearance improved,<br>But her glasses slipped down to her toes.", //unique
9223            "There was a young soldier complete,<br>With buttons and uniform neat,<br>Who went on parade,<br>Fully armed with a spade,<br>&quot;Hoe! Hoe!&quot; barked the sergeant &quot;Retreat!&quot;.", //unique
9224            "To compose a sonata today,<br>Don't proceed in the old-fashioned way:<br>With your toes on the keys,<br>Bang the floor with your knees:<br>&quot;Oh how modern!&quot; the critics will say.",
9225            "There was an old fellow of Spain,<br>Whose left leg was cut off by a train.<br>When his friends said, &quot;How sad!&quot;<br>He replied, &quot;No, I'm glad,<br>For I've now lost my varicose vein!&quot;", //3 hits, old newspapers
9226            "There was a young lady whose chin,<br>Resembled the point of a pin.<br>So she had it made sharp,<br>And purchased a harp,<br>And played several tunes - what a din!",
9227            "A young gourmet dining at Crewe,<br>Found a rather large mouse in his stew.<br>Said the waiter, &quot;Don't shout,<br>And wave it about,<br>Or the rest will be wanting one, too!&quot;.",
9228            "There once was a fly on the wall,<br>I wonder why didn't it fall.<br>Because its feet stuck,<br>Or was it just luck,<br>Or does gravity miss things so small?",
9229            "There was an old man of Peru,<br>Who found he had nothing to do,<br>So he sat on the stairs<br>And counted his hairs,<br>And found he had just twenty two!", //unique
9230            "There was an old person of Fratton<br>Who would go to church with his hat on.<br>&quot;If I wake up,&quot; he said,<br>&quot;With a hat on my head,<br>I will know that it hasn't been sat on.&quot;",
9231            "A foolish young man with a yacht,<br>Sailed south when the weather grew hot.<br>&quot;I'm anxious to see<br>An Iceberg&quot;, said he,<br>But he wasn't in quite the right spot.", //unique
9232            "There was a young sprinter called Mac,<br>Who piled up the miles on the track.<br>He ran to and fo,<br>With such splendid go go,<br>That he met his own self coming back!", //unique
9233            "A man in a tram from Vancouver,<br>
9233Once grabbed a seat by manoeuvre.<br>But a lady quite stout,<br>Sat on top of the lout,<br>And his squeals did nowt to remove her!", //libby
9234            "There was an old fellow named Green,<br>Who grew so abnormally lean,<br>And flat, and compressed,<br>That his back touched his chest,<br>And sideways he couldn't be seen.",
9235            "There was a young fellow of Perth,<br>Who was born on the day of his birth.<br>He was married they say<br>On his wife's wedding day,<br>And died on his last day on Earth.",
9236            "There once was a large boy of Lyme,<br>Who ate three pork pies at a time.<br>When asked, &quot;Why the third?&quot;<br>He replied &quot;One's absurd,<br>And to only have two is a crime!&quot;", //unique
9237            "There once was a man from Nantucket<br>Who kept all his cash in a bucket.<br>But his daughter, named Nan,<br>Ran away with a man<br>And as for the bucket, Nantucket.",
9238            "There was a young lady from Eton,<br>Whose figure had plenty of meat on.<br>She said &quot;Wed me, Jack,<br>And you'll find that my back<br>Is a nice place to warm your cold feet on'.",
9239            "There was a sparky young man of Dundee,<br>Who was surely as bright as could be.<br>He could cross-multiply,<br>And he never would lie -<br>He was robot inter-nal-y!", //oliver
9240            "Perk Peter, a Grenadier Guard,<br>Said life in the army was hard.<br>He'd been putting on airs,<br>And fell on the stairs,<br>Which his comrades had covered with lard.", //unique
9241            "&quot;There's a train at four four,&quot; said Miss Jenny.<br>&quot;Four tickets I'll take; have you any?&quot;<br>Said the man at the door,<br>&quot;Not four for four four,<br>For four for four four is too many.&quot;",
9242            "A major, with wonderful force,<br>Called out in Hyde Park for a horse,<br>All the flowers looked round,<br>But not one could be found,<br>So he just rhododendron, of course.",
9243            "There once was a man named Brice,<br>Had he a head full of lice.<br>He said, &quot;If I eat 'em,<br>Then I'll have beat 'em!<br>And besides they taste very nice!",
9244            "There was an old man of the Cape,<br>Who made himself garments of crepe,<br>When asked &quot;Do they tear?&quot;,<br>He replied, &quot;Here and there,<br>But they're perfectly splendid for shape!&quot;",
9245            "Archimedes, that well-known truth-seeker,<br>Jumped out of his bath with &quot;Eureka!&quot;<br>He ran half a mile <br>Wearing only a smile<br>And became the very first streaker!",
9246            "There once were two cats of Kilkenny,<br>Each thought there was one cat too many;<br>So they fought and they fit,<br>And they scratched and they bit,<br>Till, excepting their nails and the tips of their tails, instead of two cats, there weren't any!",
9247            "There was a loudmouth of Saltash,<br>Who had been in a motoring crash.<br>With his vanity humbled,<br>He pointed and mumbled,<br>&quot;You've sewn up my mouth - not my gash!&quot;", //unique
9248            "There was a young fellow of Munich,<br>Whose appetite simply was unique.<br>&quot;There's nothing like food&quot;,<br>He contentedly cooed,<br>As he let out a tuck in his tunic.",
9249            "There was an old man with a beard,<br>Who said, &quot;It is just as I feared!<br>Two Owls and a Hen,<br>Four Larks and a Wren,<br>Have all built their nests in my beard!&quot;",
9250            "As a beauty I'm not a great star,<br>There are others more handsome by far.<br>But my face — I don't mind it,<br>Because I'm behind it —<br>It's the people in front that I jar.", //62
9251        ];
9252
9253        function showLimerick() {
9254            limerickA.innerHTML = "Daily Limerick";
9255            limerickB.style.display = "block";
9256            limerickBottomBar.style.display = "block";
9257            limerickA.style.cursor = "default";
9258            limerickA.style.paddingBottom = "0";
9259
9260            var limerickPromo1 = "  ...Daily Friv fun limericks at... https://www.friv.com";
9261            var limerickPromo2 = "  ...Daily limericks at... https://www.friv.com";
9262            var limerickPromo3 = "  ...Daily fun at... https://www.friv.com";
9263            var limerickPromo4 = " https://www.friv.com";
9264
9265            var chosenLimerick = limericks[date + secondMonth];
9266
9267            switch (specialDay) {
9268                case "aprilFoolsDay":
9269                    chosenLimerick = "There are times that I feel like a tool,<br>Complying with each lim’rick rule.<br>So starting today,<br>I refuse to obey.<br>Don’t believe me? You’re right. April Fool!";
9270                    break;
9271                case "dec23rd":
9272                    chosenLimerick = "Said a turkey &quot;When Christmas draws near,<br>I'm filled with foreboding and fear.<br>But I'm happy to say,<br>When I get past that day,<br>I generally live through the year!";
9273                    break;
9274                case "christmasEve":
9275                    limerickA.innerHTML = "Xmas Eve Limerick";
9276                    chosenLimerick = "From out of the bright starry dome,<br>Jolly Santa descends to your home.<br>He's read what you wrote,<br>In your &quot;Please, Santa&quot; note,<br>And your present's been packed by a gnome!";
9277                    break;
9278                case "christmasDay":
9279                    limerickA.innerHTML = "Xmas Day Limerick";
9280                    chosenLimerick = "The reindeer are fleet on their feet,<br>And race through the rain, snow and sleet.<br>They always get through,<br>We depend on them to,<br>When we look for our Christmas day treat!";
9281                    break;
9282                default:
9283                // code block
9284            }
9285
9286            limerickB.innerHTML = chosenLimerick;
9287
9288            var adaptedLimerick = chosenLimerick.toString();
9289
9290            var addPromo = true;
9291
9292            if (addPromo && (adaptedLimerick.length + limerickPromo1.length < 281)) { //twitter char limit
9293                adaptedLimerick += limerickPromo1;
9294                addPromo = false;
9295            }
9296            if (addPromo && (adaptedLimerick.length + limerickPromo2.length < 281)) { //twitter char limit
9297                adaptedLimerick += limerickPromo2;
9298                addPromo = false;
9299            }
9300            if (addPromo && (adaptedLimerick.length + limerickPromo3.length < 281)) { //twitter char limit
9301                adaptedLimerick += limerickPromo3;
9302                addPromo = false;
9303            }
9304            if (addPromo && (adaptedLimerick.length + limerickPromo4.length < 281)) { //twitter char limit
9305                adaptedLimerick += limerickPromo4;
9306                addPromo = false;
9307            }
9308
9309            adaptedLimerick = adaptedLimerick.replace(/<br>/g, " ");
9310            adaptedLimerick = adaptedLimerick.replace(/'/g, "&apos;");
9311            adaptedLimerick = encodeURI(adaptedLimerick);
9312
9313            //limerickT.innerHTML = "<a href='https://twitter.com/intent/tweet?text=" + adaptedLimerick + "' target='_blank'>
9313Tweet This Limerick</a>";
9314
9315            limerickA.scrollIntoView({
9316                block: 'start',
9317                behavior: 'smooth'
9318            });
9319
9320            gtag('event', ("Limerick : " + (date + secondMonth)), {
9321                'event_category': 'Bonus Content',
9322                'event_label': 'Limerick Shown'
9323            });
9324        }
9325
9326
9327
9328        //BONUS SECTION - define and show tongue twisters
9329        //////////////////////////////////////////////////           
9330        var tongueTwisters = [
9331            "",
9332            "Red Buick, blue Buick.",
9333            "Sniff Sesh.",
9334            "The Smothers brothers' father's mother's brothers are the Smothers brothers' mother's father's other brothers.",
9335            "If a fella met a fella in a field of fitches... can a fella tell a fella where a fella itches?",
9336            "Five fuzzy French frogs frolicked through the fields in France.",
9337            "Don't trouble trouble, until trouble troubles you! If you trouble trouble, triple trouble troubles you!",
9338            "A good cook could cook as many cookies as a good cook could cook.",
9339            "Round and round the rugged rock the ragged rascal ran.",
9340            "I wish to wish the wish you wish to wish, but if you wish the wish the witch wishes, I won't wish the wish you wish to wish.",
9341            "Rhys watched Ross switch his Irish wristwatch for a Swiss wristwatch.",
9342            "The owner of the inside inn was inside his inside inn with his inside outside his inside inn.",
9343            "Six slimy snails sailed silently.",
9344            "Five frantic frogs fled from fifty fierce fishes.",
9345            "Green and brown blades of grass.",
9346            "Plain bun, plum bun, bun without plum.",
9347            "The thirty-three thieves thought that they thrilled the Thane throughout Thursday.",
9348            "Truly rural.",
9349            "Peter Piper picked a peck of pickled peppers.<br>A peck of pickled peppers Peter Piper picked.<br>If Peter Piper picked a peck of pickled peppers,<br>Where's the peck of pickled peppers Peter Piper picked?",
9350            "Yelling yellow Yeti.",
9351            "Grandma Gabby Grammer grabbed a gram of gummy goulash.<br>If Grandma Gabby Grammer grabbed a gram of gummy goulash, how many grams of gummy goulash did Grandma Gabby Grammer grab?",
9352            "Loyal royal lawyer.",
9353            "A bitter biting bittern bit a better biting bittern, and the better biting bittern bit the bitter biting bittern back.<br>Said the bitter biting bittern to the better biting bittern 'I’m a bitter biting bittern bitten back'",
9354            "Sure, Sir, the ship's sure shipshape, Sir.",
9355            "A tree-toad loved a she-toad<br>Who lived up in a tree.<br>He was a two-toed tree-toad,<br>But a three-toed toad was she.<br>The two-toed tree-toad tried to win<br>The three-toed she-toad's heart,<br>For the two-toed tree-toad loved the ground<br>That the three-toed tree-toad trod.<br>But the two-toed tree-toad tried in vain;<br>He couldn't please her whim.<br>From her tree-toad bower,<br>With her three-toed power,<br>The she-toad vetoed him.",
9356            "If a dog chews shoes, whose shoes does he choose?",
9357            "Of all the felt I ever felt,<br>I never felt a piece of felt<br>which felt as fine as that felt felt,<br>when first I felt that felt hat's felt.",
9358            "The big black bug bit the big black bear, but the big black bear bit the big black bug back!",
9359            "Fuzzy Wuzzy was a bear. Fuzzy Wuzzy had no hair. Fuzzy Wuzzy wasn’t fuzzy, was he?",
9360            "There was a writer called Wright, he taught his son to write Wright right: 'It's not right to write Wright 'Rite', please try to write Wright right!'",
9361            "Three grey geese in a green field grazing.<br>Grey were the geese and green was the grazing.",
9362            "Quizzical quiz, kiss me quick."
9363        ];
9364
9365        var tongueTwisterString = (tongueTwisters[date]);
9366
9367        function showTongueTwister() {
9368            tongueTwisterA.innerHTML = "Daily Tongue Twister";
9369            switch (specialDay) {
9370                case "aprilFoolsDay":
9371                    tongueTwisterString = "Four poor fools filled four pools full.";
9372                    break;
9373                case "dec20th":
9374                    tongueTwisterString = "Tiny Timmy trims the tall tree with tinsel.";
9375                    break;
9376                case "dec21st":
9377                    tongueTwisterString = "Santa's sleigh slides on slick snow.";
9378                    break;
9379                case "dec22nd":
9380                    tongueTwisterString = "Eleven elves licked eleven little licorice lollipops.";
9381                    break;
9382                case "dec23rd":
9383                    tongueTwisterString = "Santa stuffs Stephie's striped stocking.";
9384                    break;
9385                case "christmasEve":
9386                    tongueTwisterString = "Running reindeer romp 'round red wreaths.";
9387                    break;
9388                case "christmasDay":
9389                    tongueTwisterString = "Santa's seven sleighs 
9389slid sideways.";
9390                    break;
9391                default:
9392                // code block
9393            }
9394            tongueTwisterString = tongueTwisterString.toString();
9395            if (tongueTwisterString.length < 45) {
9396                tongueTwisterString += "<br><br>Say it several times quickly!";
9397            }
9398
9399
9400
9401            tongueTwisterB.style.display = "block";
9402            tongueTwisterBottomBar.style.display = "block";
9403            tongueTwisterA.style.cursor = "default";
9404            tongueTwisterA.style.paddingBottom = "0";
9405            tongueTwisterB.innerHTML = tongueTwisterString;
9406            tongueTwisterA.scrollIntoView({
9407                block: 'start',
9408                behavior: 'smooth'
9409            });
9410        }
9411
9412        //BONUS SECTION - define and show stories
9413        /////////////////////////////////////////
9414        var storyFirstPlay = true;
9415
9416        var stories = [
9417            ["The Tale of Peter Rabbit", "Beatrix Potter", "5¾ minutes", "4+", "James", "the-tale-of-peter-rabbit"],
9418            ["The Tale of Jemima Puddleduck", "Beatrix Potter", "7¾ minutes", "4+", "James", "the-tale-of-jemima-puddleduck"],
9419            ["Little Sambo", "Helen Bannerman", "7 minutes", "4+", "James", "little-sambo"],
9420            ["Pandora And The Mysterious Box", "Anon", "24½ minutes", "8+", "James", "pandora-and-the-mysterious-box"],
9421            ["The Selfish Giant", "Oscar Wilde", "10 minutes", "8+", "James", "the-selfish-giant"],
9422            ["The Emperor's New Clothes", "Hans Christian Anderson", "10 minutes", "4+", "James", "the-emperors-new-clothes"],
9423            ["The Tinderbox", "Hans Christian Anderson", "18 minutes", "4+", "James", "the-tinderbox"],
9424            ["Hansel And Gretel", "The Brothers Grimm", "7½ minutes", "9+", "James", "hansel-and-gretel"],
9425            ["Rumpelstiltskin", "The Brothers Grimm", "7½ minutes", "4+", "James", "rumpelstiltskin"],
9426            ["The Clever Little Tailor", "The Brothers Grimm", "6½ minutes", "4+", "James", "the-clever-little-tailor"],
9427            ["The Three Feathers", "The Brothers Grimm", "8½ minutes", "4+", "James", "the-three-feathers"],
9428            ["Little Snow White", "The Brothers Grimm", "21¾ minutes", "8+", "James", "little-snow-white"],
9429            ["The Bremen Town Musicians", "The Brothers Grimm", "8½ minutes", "4+", "James", "the-bremen-town-musicians"],
9430            ["The Golden Goose", "The Brothers Grimm", "10¾ minutes", "4+", "James", "the-golden-goose"],
9431            ["The Ugly Duckling", "Hans Christian Anderson", "25¼ minutes", "4+", "Libby", "the-ugly-duckling"],
9432            ["The Little Tin Soldier", "Hans Christian Anderson", "10¼ minutes", "8+", "James", "the-little-tin-soldier"],
9433            ["The Story Of The Willow-Pattern Plate", "Anon", "14¼ minutes", "6+", "James", "the-story-of-the-willow-pattern-plate"],
9434            ["The Chinese Beauty And The Tartar Beast", "Anon", "6¾ minutes", "6+", "James", "the-chinese-beauty-and-the-tartar-beast"],
9435            ["Sophia's Genie", "James", "1 hour 14½ minutes", "8+", "James", "sophias-genie"],
9436        ];
9437
9438
9439        var selectedStory = Math.floor(Math.random() * stories.length);
9440
9441        storyA.addEventListener("click", showStory);
9442
9443
9444        var feedbackTime;
9445
9446        function feedbackTimer() {
9447            feedbackTime = setTimeout(function () {
9448
9449                storyAudio.style.paddingBottom = "1vh";
9450                pleaseRateStory.innerHTML = "Please rate " + stories[selectedStory][0] + ". Thank you!<br>If you have any comments about it, please use the feedback section below.";
9451                storyBottomBar.style.display = "block";
9452
9453                //for feedback
9454                //socialShare.style.display = "none";
9455                //shareMessage.style.display = "none";
9456                feedback.style.display = "block";
9457
9458            }, 180000); //3 minutes
9459        }
9460
9461        function showStory() {
9462
9463            clearTimeout(feedbackTime);
9464            feedbackTimer();
9465
9466            storyA.removeEventListener("click", showStory);
9467            storyA.scrollIntoView({
9468                block: 'start',
9469                behavior: 'smooth'
9470            });
9471
9472            if (selectedStory == stories.length) {
9473                selectedStory = 0;
9474            }
9475
9476            if (selectedStory == -1) { //if prev story tapped enough to go below 0 (start), go to end of stories array
9477                selectedStory = stories.length - 1;
9478            }
9479
9480            storyAudio.style.paddingBottom = "10vh";
9481            storyBottomBar.style.display = "none";
9482            storyInfoButton.style.display = "block";
9483            storyD.style.display = "none";
9484            storyA.innerHTML = "Bedtime Story";
9485            storyA.style.paddingBottom = "2vh";
9486            storyB.style.display = "block";
9487            storyC.style.display = "block";
9488            storyA.style.cursor = "default";
9489            storyTitle.style.fontSize = "1.7em";
9490            if (stories[selectedStory][0].length > 20) {
9491                storyTitle.style.fontSize = "1.5em";
9492            }
9493            storyTitle.innerHTML = stories[selectedStory][0];
9494            storyDescription1.innerHTML = stories[selectedStory][1] + " | Length: " + stories[selectedStory][2] + "<br>";
9495            storyDescription2.innerHTML = "For ages " + stories[selectedStory][3] + ".  Read by " + stories[selectedStory][4];
9496            storyAudio.src = "z/frivdaily/stories/" + stories[selectedStory][5] + ".mp3";
9497            storyPlayPauseButton.innerHTML = "PLAY";
9498            storyInfoButton.addEventListener("click", showStoryInfo);
9499        }
9500
9501        function playPauseStory() {
9502
9503            if (chiptunePlaying) {
9504                pauseChiptune();
9505            }
9506            logoAudio.pause();
9507            funnyVideoContainer.pause();
9508
9509            if (storyAudio.paused) {
9510                storyPaused();
9511                storyAudio.play();
9512            } else {
9513                storyPlayed();
9514                storyAudio.pause();
9515            }
9516        }
9517
9518        function storyPaused() {
9519            storyPlayPauseButton.innerHTML = "PLAY";
9520        }
9521
9522        function storyPlayed() {
9523            storyPlayPauseButton.innerHTML = "PAUSE";
9524
9525            if (storyFirstPlay) {
9526                gtag('event', ("User played story"), {
9527                    'event_category': 'Bonus Content',
9528                    'event_label': 'Story Play Session'
9529                });
9530            }
9531
9532            storyFirstPlay = false;
9533        }
9534
9535        storyAudio.onended = function () {
9536            gtag('event', ("User reached end of story"), {
9537                'event_category': 'Bonus Content',
9538                'event_label': 'Story Play Session'
9539            });
9540        }
9541
9542        function showStoryInfo() {
9543            storyInfoButton.style.display = "none";
9544            storyD.style.display = "block";
9545            storyD.innerHTML = "&quot;If you want your children to be intelligent, read them fairy tales. If you want them to be more intelligent, read them more fairy tales.&quot; - Albert Einstein.<br><br>The bedtime stories here come from a number of sources, although most notably from 'Books for the Bairns' which were little, very cheaply printed Victorian-era pocket books sold at newsstands for one penny each. As many of the original texts are now over a century old, some small occasional changes may have been made to make the stories more accessible, sensitive, and relevant to modern audiences. There are some beautiful tales here, and our hope is that you and your loved one
9545s will find them a pleasant way to end your day.<br><br>Night night. Sleep tight!";
9546            storyD.scrollIntoView({
9547                block: 'end',
9548                behavior: 'smooth'
9549            });
9550        }
9551
9552        function prevStory() {
9553            selectedStory--;
9554            showStory();
9555        }
9556
9557        function nextStory() {
9558            selectedStory++;
9559            showStory();
9560        }
9561
9562        //EXTRAS - visitor numbers
9563        //////////////////////////
9564        //visitor numbers - when regularly calibrated with accurate base and multiplier, this produces approximately correct results
9565        function updateVisitorsCounter() {
9566            var baseVisitors = 100; //feb 2019
9567            var multiplier = 0.5; //jul 2019
9568            var d = new Date();
9569            var totalMinutes = (d.getHours() * 60) + d.getMinutes() + (d.getSeconds() / 60);
9570            //var totalMinutes = (23 * 60) + 59;   //8pm 1300    //midnight 1538
9571            if (totalMinutes > 1200) {
9572                totalMinutes = (totalMinutes + ((1200 - totalMinutes) * 6));
9573            }
9574            var visitors = Math.floor(totalMinutes * multiplier) + baseVisitors + Math.floor(Math.random() * 10);
9575            visitorNumbers.innerText = visitors;
9576        }
9577
9578        //if (lang.indexOf("en") > -1) {
9579        //    updateVisitorsCounter();
9580        //    var updateVisitors = setInterval(updateVisitorsCounter, 3000);
9581        //}
9582
9583
9584
9585
9586
9587
9588        //BREAKPOINT
9589        ////////////
9590        if (breakPoint) {
9591            gtag('event', 'Breakpoint 15', {
9592                'event_category': 'Debug',
9593                'event_label': 'Breakpoints'
9594            });
9595        }
9596        ////////////
9597        ////////////
9598
9599
9600        //EXTRAS - bottom poo
9601        /////////////////////
9602
9603        if (gamePlays >= 15 && commonLang) {
9604            bottomPoo.style.display = "block";
9605
9606            //achievement #3
9607            if (gamePlays == 15) {
9608
9609                achievementSlider.innerHTML = "🌟 Achievement! You are a MASTER Friv player! 🌟<br>You get a... <span class=brown>BIG BRAINROT POO EMOJI!</span><br>Because we love you. Click him!";
9610                achievementSlider.style.display = "block";
9611                incrementGamePlays();
9612
9613                setTimeout(function () {
9614
9615                    bottomPoo.scrollIntoView({
9616                        behavior: "smooth",
9617                        block: "start",
9618                        inline: "nearest"
9619                    });
9620
9621                    //to ensure full scrolling...
9622                    setTimeout(function () {
9623                        bottomPoo.scrollIntoView({
9624                            behavior: "smooth",
9625                            block: "start",
9626                            inline: "nearest"
9627                        });
9628                    }, 3000);
9629
9630                    gtag('event', ('Poo Emoji'), {
9631                        'event_category': 'Navigation',
9632                        'event_label': 'Achievemements'
9633                    });
9634
9635                }, 9000);
9636
9637            }
9638
9639        }
9640
9641
9642        window.addEventListener("scroll", wakeupPoo);
9643        var pooState = "sleeping";
9644
9645        var timeout1;
9646
9647        function showNormalPoo() {
9648            timeout1 = setTimeout(function () {
9649                bottomPoo.style.backgroundPosition = "-40vmin bottom";
9650            }, 1500);
9651            clearTimeout(timeout2);
9652        }
9653
9654        var timeout2;
9655
9656        function showSleepyPoo() {
9657            timeout2 = setTimeout(function () {
9658                bottomPoo.style.backgroundPosition = "0 bottom";
9659            }, 5000);
9660            clearTimeout(timeout1);
9661        }
9662
9663        //listen for when poo visible, to control sleeping on / off
9664        function wakeupPoo() {
9665            var rect = bottomPoo.getBoundingClientRect();
9666            var elemTop = rect.top;
9667            var elemBottom = rect.bottom;
9668            var bottomPooVisible = elemTop < window.innerHeight && elemBottom >= 0;
9669            if (bottomPooVisible && pooState == "sleeping") {
9670                showNormalPoo();
9671                pooState = "normal";
9672            }
9673            if (!bottomPooVisible && pooState == "normal") {
9674                showSleepyPoo();
9675                pooState = "sleeping";
9676            }
9677        };
9678
9679        bottomPoo.addEventListener("click", activatePoo);
9680
9681        //to facilitate click on poo
9682        function activatePoo() {
9683            clearTimeout(timeout1);
9684            bottomPoo.style.backgroundPosition = "-80vmin bottom";
9685            playSound('windypopspoo');
9686            setTimeout(function () {
9687                bottomPoo.style.backgroundPosition = "-40vmin bottom";
9688            }, 2000);
9689        }
9690
9691        //EXTRAS - logo swap
9692        ////////////////////
9693
9694        var logos = ['Ukraine', 'TicTacToeXXO', 'Bloxorz', 'PowerPamplona', 'SuperOnionBoy', 'FireboyAndWatergirl', 'Pride', 'Paradise', 'ColouredPaper', 'Aliens', 'PacManTribute', 'Classic', 'Freehand', 'SleepingKitten', 'BobTheRobber', 'Tablet', 'Typewriter', 'WorldHQ']; //'Desert' 'Emerald' 'PrideSoccer' 'SpainFootballWin'
9695
9696        var randomLogo = Math.floor(Math.random() * logos.length);
9697
9698        var logoURL = "url('z/assets/img/frivLogo" + logos[randomLogo] + "Min.svg')";
9699
9700        var logoTimeout = 60000; //60000 = 1min
9701
9702        //special
9703        //logoURL = "url('z/assets/img/frivLogoSpainFootballWinMin.svg";
9704        //logoTimeout = 15000;
9705
9706        if (isSchool) {
9707            logoTimeout = 3000;
9708            logoURL = "url('z/assets/img/frivLogoSchoolMin.svg')";
9709        }
9710
9711        if (specialPeriod == "christmas") {
9712            logoTimeout = 3000;
9713            if (isSchool) {
9714                logoURL = "url('z/assets/img/frivLogoSchoolXmasMin.svg')";
9715            } else {
9716                logoURL = "url('z/assets/img/frivLogoXmasMin.svg')";
9717            }
9718        }
9719
9720        if (specialPeriod == "halloween") {
9721            logoTimeout = 3000;
9722            if (isSchool) {
9723                logoURL = "url('z/assets/img/frivLogoSchoolHalloweenMin.svg')";
9724            } else {
9725                logoURL = "url('z/assets/img/frivLogoHalloweenMin.svg')";
9726            }
9727            logoLeftShine.style.backgroundImage = "linear-gradient(maroon, red, darkorange, orange, transparent)";
9728            logoRightShadow.style.backgroundImage = "linear-gradient(maroon, red, darkorange, orange, transparent)";
9729        }
9730
9731
9732
9733
9734
9735
9736
9737
9738        var logoSwitch = true;
9739        var logoSwitcherTimeout;
9740
9741        //var esExtraGamesTrial = false;
9742
9743        setTimeout(function () {
9744
9745            //temp trial
9746            //if (shortLang == "es" && pageViews > 100) {
9747            //    esExtraGamesTrial = true;
9748            //    addExtraGames();
9749            //}
9750
9751            logo.style.transform = "rotate(0deg)";
9752            logo.style.backgroundImage = logoURL;
9753
9754            function logoSwapFunction() {
9755                logoSwitcherTimeout = setInterval(logoSwitcher, 2000);
9756            }
9757            //logoSwapFunction(); used for coronavirus only
9758
9759
9760            if (randomLogo < 4 && Math.random() < 0.05) { //first 4 logos
9761                //logo.style.filter = "grayscale(100%)"; //disabled during coronavirus
9762            }
9763            logo.style.animation = "none";
9764            logoSpinner.style.display = "none";
9765            if (specialPeriod == "christmas") {
9766                //document.body.style.background = "linear-gradient(maroon, #400)";
9767                bottomPoo.style.backgroundImage = "url('z/assets/img/pooThreeXmasMin.svg')";
9768            }
9769
9770            if (Math.random() < 0.01) {
9771                gtag('event', ('Logo Swap 1%'), {
9772                    'event_category': 'Navigation',
9773                    'event_label': 'Logo'
9774                });
9775            }
9776
9777            //fails to show flash animation...
9778            //logo.style.animation = "brightFlash 0.2s 2s steps(1)";
9779        }, logoTimeout); //300000 = 5mins
9780
9781        function logoSwitcher() {
9782            if (logoSwitch) {
9783                logoSpinner.style.display = "none"; //as backup
9784                logo.style.backgroundImage = "url('z/assets/img/frivLogoCoronavirusMin01.svg')";
9785                logoSwitch = false;
9786            } else {
9787                logo.style.backgroundImage = "url('z/assets/img/frivLogoCoronavirusMin02.svg')";
9788                logoSwitch = true;
9789            }
9790        }
9791
9792        //show classic logo
9793        if (window.location.href.indexOf("classic") > -1) {
9794            logo.style.transform = "rotate(0deg)";
9795            logo.style.animation = "none";
9796            logoSpinner.style.animation = "none";
9797            logo.style.backgroundImage = "url('z/assets/img/frivLogoClassicMin.svg')";
9798        }
9799
9800        if (window.location.href.indexOf("bz") > -1) {
9801            logo.style.transform = "rotate(0deg)";
9802            logo.style.animation = "none";
9803            logoSpinner.style.animation = "none";
9804            logo.style.backgroundImage = "url('z/assets/img/frivLogoClassicMin.svg')";
9805            setTimeout(function () {
9806                logo.style.backgroundImage = "url('z/assets/img/frivLogoClassicBzMin.svg')";
9807            }, 4000);
9808        }
9809
9810        if (window.location.href.indexOf("by") > -1) {
9811            logo.style.transform = "rotate(0deg)";
9812            logo.style.animation = "none";
9813            logoSpinner.style.animation = "none";
9814            logo.style.backgroundImage = "url('z/assets/img/frivLogoClassicByMin.svg')";
9815        }
9816
9817        if (window.location.href.indexOf("games") > -1 && false) { //disabled
9818            logo.style.transform = "rotate(0deg)";
9819            logo.style.animation = "none";
9820            logoSpinner.style.animation = "none";
9821            document.body.style.background = "deepSkyBlue";
9822            logo.style.backgroundImage = "url('z/assets/img/frivLogoOrangeMin.svg')";
9823        }
9824
9825        //DISPLAY GAMES
9826        ///////////////
9827
9828        var displayGamesTimer = 0;
9829
9830        if (debug) {
9831            //displayGamesTimer = 5000;
9832        }
9833
9834        if (!isSchool && scriptsLoadable && gamePlays > 3) {
9835            displayGamesTimer = 500; //carefully time the display of new larger games for faster overall page loading / less Cumulative Layout Shift while loading. //prev tested 1000 - 2s
9836            loadingGamesExpander.style.animationDuration = "1s"; //prev tested 1000 - 2s
9837            loadingGamesExpander.style.opacity = "1";
9838        }
9839
9840        if (!isSchool && scriptsLoadable && gamePlays > 6) {
9841            displayGamesTimer = 1000; //as yet more new games added, carefully time the display of games for faster overall page loading / less Cumulative Layout Shift while loading. //prev tested 2000 - 3s
9842            loadingGamesExpander.style.animationDuration = "2s"; //prev tested 2000 - 3s
9843        }
9844
9845        setTimeout(function () {
9846            displayGames("*", "*");
9847            frivDaily.style.paddingTop = "20vh";
9848        }, displayGamesTimer);
9849
9850        //FEEDBACK
9851        //////////
9852        function showFeedback() {
9853            //socialShare.style.display = "none";
9854            //shareMessage.style.display = "none";
9855            feedback.style.display = "block";
9856        }
9857
9858        //if (shortLang == "en" && Math.random() > 0.85 && pageViews > 15) { //|| (/\bCrOS\b/.test(navigator.userAgent)
9859        //    showFeedback();
9860        //}
9861
9862        if (!webpOK) {
9863            feedbackIntroText.innerHTML = "Hello! We're trying to make Friv the best it can be. Have you found any bugs or issues? We really appreciate your help. Many thanks!<br><br><mark>&nbsp;NOTE: It looks like your device or browser is very old. You may have many more issues with this site than other users. Please upgrade if you can.&nbsp;</mark>";
9864        }
9865
9866
9867        function submitFeedback() {
9868
9869            var x = document.getElementById("feedback1");
9870            var text = "";
9871            if (x.elements[0].value == "") {
9872                text = "Anon";
9873            }
9874            var i;
9875            for (i = 0; i < x.length; i++) {
9876                text += x.elements[i].value + ":";
9877            }
9878
9879            feedback.innerHTML = "A BIG THANK YOU!<br>We're sorry we can't reply, but we read all your feedback, even if we have to stay up past our bedtime.";
9880
9881            feedback.scrollIntoView({
9882                block: 'start',
9883                behavior: 'smooth'
9884            });
9885
9886            if ((text.length > 15) && (text.indexOf(" ")) > -1) { //message is longish and has at least one space
9887                var submitText = "ZFeedback-" + text.replace(/ /g, "-") + deviceCategory;
9888
9889                if (isSchool) {
9890                    submitText += "Sch"
9891                }
9892
9893                if (!webpOK) {
9894                    submitText += "NoWebP"
9895
9896                }
9897
9898                gtag('config', 'G-Q1SE2SYDTW', { //G-WKK8W70CG6
9899                    //'sample_rate': 100, not needed
9900                    'page_title': submitText
9901                });
9902
9903            }
9904        }
9905
9906
9907
9908        //BREAKPOINT
9909        ////////////
9910        if (breakPoint) {
9911            gtag('event', 'Breakpoint 16', {
9912                'event_category': 'Debug',
9913                'event_label': 'Breakpoints'
9914            });
9915        }
9916        ////////////
9917        ////////////
9918
9919
9920
9921
9922
9923
9924
9925
9926
9927        //MORE GAMES (mostly advergames for tv shows etc.)
9928        //////////////////////////////////////////////////
9929
9930        //gameplays incrementer
9931        document.addEventListener("keypress", function (event) {
9932
9933            console.log("event.keyCode: " + event.keyCode);
9934
9935            if (event.keyCode == 13) {
9936                gamePlays++;
9937                localStorage.setItem("gamePlays", gamePlays);
9938                console.log("cookie gameplays increment: " + gamePlays);
9939            }
9940
9941        });
9942
9943        const startToShowPack1 = 5;
9944        const startToShowPack2 = 10;
9945        const startToShowPack3 = 27;
9946        const startToShowFeedback = 50;
9947
9948        var showPack2 = false;
9949        var showPack3 = false;
9950
9951        function incrementGamePlays() {
9952            gamePlays++;
9953            localStorage.setItem("gamePlays", gamePlays);
9954            console.log("cookie gameplays increment: " + gamePlays);
9955        }
9956
9957
9958
9959
9960
9961
9962
9963
9964
9965
9966
9967        function initMoreGames() {
9968
9969            if (testVer || clickHack || (commonLang && gamePlays >= startToShowPack1)) {    //if (testVer || (!isSchool && commonLang && gamePlays >= startToShowPack1)) {
9970                devoryGames.style.display = "block";
9971
9972                //achievement #1
9973
9974                if (gamePlays >= startToShowPack1) {
9975                    achievementSignifier.style.display = "block";
9976                    achievementSignifier.style.backgroundImage = "linear-gradient(to bottom, rgba(0,0,255,0.5), rgba(0,0,0,0))";
9977                    achievementSignifier.innerHTML = "⭐ AWESOME ⭐";
9978                }
9979
9980
9981                if (gamePlays == startToShowPack1) {
9982
9983                    achievementSlider.innerHTML = "⭐ Achievement! You are an AWESOME Friv player! ⭐<br>You get... MORE GAMES! <span class=navy>PACK 1</span>";
9984                    achievementSlider.style.display = "block";
9985                    incrementGamePlays();
9986
9987                    setTimeout(function () {
9988
9989                        devoryGames.scrollIntoView({
9990                            block: 'start',
9991                            behavior: 'smooth'
9992                        });
9993
9994                        gtag('event', ('More Games Pack 1'), {
9995                            'event_category': 'Navigation',
9996                            'event_label': 'Achievemements'
9997                        });
9998
9999                    }, 9000);
10000
10001                }
10002
10003                //achievement #2
10004
10005                if (gamePlays >= startToShowPack2) {
10006                    showPack2 = true;
10007                    achievementSignifier.display = "block";
10008                    achievementSignifier.style.backgroundImage = "linear-gradient(to bottom, rgba(0,255,0,0.5), rgba(0,0,0,0))";
10009                    achievementSignifier.innerHTML = "✨ EPIC ✨";
10010                }
10011
10012                if (gamePlays == startToShowPack2) {
10013
10014                    achievementSlider.innerHTML = "✨ Achievement! You are an EPIC Friv player! ✨<br>You get... EVEN MORE GAMES! <span class=cyan>PACK 2</span>";
10015                    achievementSlider.style.display = "block";
10016                    incrementGamePlays();
10017
10018                    setTimeout(function () {
10019
10020                        devoryGames.scrollIntoView({
10021                            block: 'start',
10022                            behavior: 'smooth'
10023                        });
10024
10025                        gtag('event', ('More Games Pack 2'), {
10026                            'event_category': 'Navigation',
10027                            'event_label': 'Achievemements'
10028                        });
10029
10030
10031                    }, 9000);
10032
10033                }
10034
10035                //achievement #3 - poo, see elsewhere, is allowed for schools
10036
10037                //achievement #4
10038
10039                if (gamePlays >= startToShowPack3) {
10040                    showPack3 = true;
10041                    achievementSignifier.display = "block";
10042                    achievementSignifier.style.backgroundImage = "linear-gradient(to bottom, rgba(255,0,0,0.5), rgba(0,0,0,0))";
10043                    achievementSignifier.innerHTML = "💫 ULTRA 💫";
10044                }
10045
10046                if (gamePlays == startToShowPack3) {
10047
10048                    achievementSlider.innerHTML = "💫 Achievement! You are the ULTRA Friv player! 💫<br>You get... EVEN MORE GAMES! <span class=yellow>PACK 3</span>";
10049                    achievementSlider.style.display = "block";
10050                    incrementGamePlays();
10051
10052                    setTimeout(function () {
10053
10054                        devoryGames.scrollIntoView({
10055                            block: 'start',
10056                            behavior: 'smooth'
10057                        });
10058
10059                        gtag('event', ('More Games Pack 3'), {
10060                            'event_category': 'Navigation',
10061                            'event_label': 'Achievemements'
10062                        });
10063
10064
10065                    }, 9000);
10066
10067                }
10068
10069                if (clickHack) {
10070                    achievementSignifier.display = "block";
10071                    achievementSignifier.style.backgroundImage = "linear-gradient(to bottom, rgba(0,255,99,0.5), rgba(0,0,99,0)
10071)";
10072                    achievementSignifier.innerHTML = "🔓 LOGO CLICK HACK 🔓";
10073                    document.title = "### HACK ###";
10074                    document.documentElement.classList.add('greenCRT');
10075
10076                    gamesBlock.style.paddingTop = "55vh"; //prevents accidental clicks
10077
10078                    gamesBlock.scrollIntoView({
10079                        block: 'start',
10080                        behavior: 'auto' // Instant jump
10081                    });
10082
10083                    setTimeout(function () {
10084                        gamesBlock.style.paddingTop = "0";
10085                        devoryGamesMainTitle.scrollIntoView({
10086                            block: 'start',
10087                            behavior: 'smooth'
10088                        });
10089                    }, 1500);
10090
10091                    setTimeout(function () {
10092                    document.documentElement.classList.remove('greenCRT');
10093                    document.title = "Friv®";
10094                    }, 9999);
10095
10096                }
10097
10098                /*
10099                if (shortLang == "en" && pageViews < startToShowPack1 + 6) {
10100                    devoryGamesSubtitle.style.display = "block";
10101                    devoryGamesSubtitle.innerHTML = "SOME MORE GREAT FRIV APPROVED GAMES";
10102                }
10103                
10104                if (shortLang == "en" && pageViews < startToShowPack1 + 3) {
10105                    devoryGamesSubtitle.style.display = "block";
10106                    devoryGamesSubtitle.innerHTML = "QUICK ACCESS GAMES ON OTHER SITES";
10107                }
10108                */
10109
10110            }
10111
10112        }
10113
10114        if (!isSchool) { //run initMoreGames to see if they can be shown to user
10115            initMoreGames();
10116        }
10117
10118
10119
10120
10121
10122
10123
10124
10125
10126
10127        //achievement #5 feedback
10128
10129        if (gamePlays >= startToShowFeedback && shortLang == "en") {
10130            achievementSignifier.display = "block";
10131            achievementSignifier.style.backgroundImage = "linear-gradient(to bottom, yellow, white, rgba(255,200,0,0.7), rgba(255,150,0,0.5), rgba(0,0,0,0))";
10132            achievementSignifier.style.textShadow = "3px 3px rgba(0,0,0,0.5)";
10133            achievementSignifier.innerHTML = "🏆 <span class=yellow>Friv VIP</span> 🏆";
10134            showFeedback();
10135        }
10136
10137        if (gamePlays == startToShowFeedback && shortLang == "en") {
10138
10139            achievementSlider.innerHTML = "🏆 Achievement! You are now a <span class=yellow>Friv VIP</span>! 🏆<br>You get... TO TELL US STUFF!";
10140            achievementSlider.style.display = "block";
10141            incrementGamePlays();
10142
10143            feedbackIntroText.innerHTML = "Hello Friv VIP! Amazing gameplay from you! Out of all the Friv players, there can't be many who know the site and the games as well as you. So... we have a very special favour to ask. In all your playing, have you ever found any bugs or issues? Or do you have any advice for us? If you ever find that anything on Friv is broken, please just scroll down here and use this form to tell us. We <i>really</i> appreciate your help. Thank you Friv VIP...<br>❤️ w e&nbsp;&nbsp;l o v e&nbsp;&nbsp;y o u ! ❤️";
10144
10145            setTimeout(function () {
10146
10147                feedback.scrollIntoView({
10148                    block: 'start',
10149                    behavior: 'smooth'
10150                });
10151
10152                gtag('event', ('Friv VIP Feedback'), {
10153                    'event_category': 'Navigation',
10154                    'event_label': 'Achievemements'
10155                });
10156
10157
10158            }, 9000);
10159
10160        }
10161
10162
10163
10164
10165
10166        //display more games logo
10167        var mgString = loveArray[10];
10168
10169        if (showPack2) {
10170            mgString = "+" + mgString + "+";
10171        }
10172
10173        var mgOutput = "";
10174        var mgColourClasses = "";
10175
10176        if (deviceSpeed == "fst") { //demanding animations (almost always run on desktops)
10177            mgColourClasses = ["ggRed", "ggOrange", "ggYellow", "ggLime", "ggBlue", "ggPurple"];
10178        } else {
10179            mgColourClasses = ["ggRedX", "ggOrangeX", "ggYellowX", "ggLimeX", "ggBlueX", "ggPurpleX"];
10180        }
10181
10182        var mgColourClassesCounter = Math.floor(Math.random() * mgColourClasses.length); //randomise start colour
10183
10184        var i;
10185        for (i = 0; i < mgString.length; i++) {
10186            mgOutput += "<div class='" + mgColourClasses[mgColourClassesCounter] + " notranslate'>" + mgString.substr(i, 1) + "</div>";
10187            mgColourClassesCounter++;
10188            if (mgString.substr(i, 1) == " ") {
10189                mgOutput += "&nbsp;";
10190                mgColourClassesCounter--; //skip back on colours, so even with a space you have full rainbow effect
10191            }
10192            if ((mgColourClassesCounter == mgColourClasses.length) || mgColourClassesCounter < 0) { //do not allow to go under 0
10193                mgColourClassesCounter = 0;
10194            }
10195        }
10196
10197        devoryGamesMainTitle.innerHTML = mgOutput;
10198
10199        function japSound() {
10200            var audioFile = "z/assets/extras/japSound.mp3";
10201            var audio = new Audio(audioFile);
10202            if (os == "Desktop") {
10203                audio.play();
10204            }
10205        }
10206
10207
10208        var devorySiteID = "FDC"; //friv.com AND friv4school.com
10209        var canAccessFDC = true;
10210        var devoryGamesCounter = 0;
10211
10212
10213
10214
10215
10216
10217
10218
10219
10220
10221
10222
10223
10224
10225
10226
10227
10228
10229
10230
10231
10232
10233
10234
10235
10236
10237
10238
10239
10240
10241
10242
10243
10244
10245
10246
10247
10248
10249
10250
10251
10252
10253
10254
10255
10256
10257
10258
10259
10260
10261
10262
10263        //DEVORY START v2.00
10264        ////////////////////
10265
10266        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
10267        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
10268        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
10269
10270
10271        if (monitor) {
10272
10273            testVer = true;
10274
10275            setTimeout(function () {
10276                checkAllImages()
10277            }, 3000);
10278
10279
10280            setInterval(function () {
10281                checkAllImages()
10282            }, 1200000); //1200000 = 20mins
10283        }
10284
10285
10286        //dt-desktop tc-touch ls-landscape pt-portrait /// #2player #x3d #action #adventure #animals #art #ball #board #card #click #combat #cute #creative #dressup #food #girls #halloween #jobs #kiddies #math #merge #misc #motorsport #multiplayer #music #new #platform #puzzle #racing #retro #rpg #running #shooting #sport #strategy #xmas #word #landscape #portrait
10287
10288        //define devory games
10289
10290        console.log("=== devory.js START");
10291
10292        var devoryGamesArray = [
10293
10294            //xmas
10295            //["U25vd2JhbGxz", "d3d3LjJkYW5zLmNvbS9nYW1lcy9zbm93YmFsbHMv", "", 0, "!d!t!webp#landscape"], //cat Snowballs www.2dans.com/games/snowballs/
10296            ["T25ldC1Db25uZWN0LUNsYXNzaWM=", "MTQ2Mjg5OTg0MzExNjUxNDEwNzEucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait#cute#puzzle"], //onet-connect-classic 14628998431165141071.playables.usercontent.goog/v/assets/index.html //fixed-21-05-2026
10297            ["SHlwbm8tQmxpc3M=", "d3d3LjJkYW5zLmNvbS9nYW1lcy9oeXBub2JsaXNzLw==", "ZW1lYS5pZnJhbWVkLmNuLmRtdGkuY2xvdWQvY29udGVudC8zODgvZ2FtZS9oeXBuby1ibGlzcy91ay9wcGdfaHlwbm9ibGlzcy1lbi0xODA1MjAxOC9pbWFnZXMvem9uZTJncmFzc3RpbGUucG5n", 134, "!d#landscape#cute#girls#platform#puzzle#shooting"], //hypno-bliss-new
10298            ["U2Nvb2J5LURvby1NeXN0ZXJ5LUNoYXNl", "d3d3LjJkYW5zLmNvbS9nYW1lcy9zY29vYnlkb29teXN0ZXJ5Y2hhc2Uv", "ZGVzOThmejVqc29zNC5jbG91ZGZyb250Lm5ldC9ib29tZXJhbmcvZHluYW1pYy93ZWJfZ2FtZS8wMDAwMDAwNC80NjYxL2Rlc2t0b3BfZ2FtZS9iaW4vc3BpbmUvdmFuLnBuZw==", 512, "!d!T-t!so#landscape#action#halloween#platform"], //scooby-do-mystery-chase-new
10299            ["VGhlLUltcG9zc2libGUtUXVpeg==", "d3d3Lnl1cmsuY29tL2dhbWVzL3RoZWltcG9zc2libGVxdWl6Lw==", "", -1, "!en!d!T-c#landscape#misc"],
10300            ["QmVuLTEwLU9tbml0cml4LUdsaXRjaA==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9iZW4xMG9tbml0cml4Z2xpdGNoLw==", "Zy5pZ3JvdXRrYS5ydS9nYW1lcy8xNjQvMnBQTUFDN2I2VmpVUjVOSi8yL3N3aW5nby9pbWFnZXMvc2hhcmVkLTEtc2hlZXQzLnBuZw==", 1, "!d!T-t#landscape#action#combat"], //ben-10-omnitrix-glitch-new
10301            ["VGhlLUZsb29yLUlzLUxhdmE=", "d3d3LjJkYW5zLmNvbS9nYW1lcy90aGVmbG9vcmlzbGF2YS8=", "d3d3LjJkYW5zLmNvbS9nYW1lcy90aGVmbG9vcmlzbGF2YS8=", 243, "!d!T-t#landscape#platform#puzzle"], //the-floor-is-lava-new
10302            ["Q2FwdHVyZS1UaGUtRmxhZw==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9jYXB0dXJldGhlZmxhZy8=", "", 0, "!d!t#landscape#action#adventure#splatform#shooting"], //capture-the-flag-new
10303            ["QmVuLTEwLURyb25lLURlc3RydWN0aW9u", "d3d3LjJkYW5zLmNvbS9nYW1lcy9iZW4xMGRyb25lZGVzdHJ1Y3Rpb24v", "", 0, "!d!t#landscape#x3d#action#combat#shooting"], //ben-10-drone-destruction-new
10304            ["SG9tZS1BbG9uZS1TdXJ2aXZhbA==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9ob21lYWxvbmVzdXJ2aXZhbC8=", "", 0, "!d!t#landscape#adventure#puzzle"], //home-alone-survival-new
10305            ["Qk1YLURheQ==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9ibXhkYXkv", "", 0, "!2pk-p!d!T-t#landscape#action#platform"], //bmx-day-new
10306            ["U3VtbWVyLUdhbWVz", "d3d3LjJkYW5zLmNvbS9nYW1lcy9zdW1tZXJnYW1lcy8=", "", 0, "!d!T-t#landscape#action#ball#sport"], //summer-games-new
10307            ["UGVuYWx0eS1Qb3dlcg==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9wZW5hbHR5cG93ZXIv", "", 0, "!2pk-
10307p!d!T-t!webp#landscape#action#ball#soccer#sport"], //penalty-power //new-thumb
10308            ["SnVtcC1Kb3VzdHMtMg==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9qdW1wam91c3RzMi8=", "", 0, "!d!T-t#landscape#action#combat#2player"], //jump-jousts-2-new
10309            ["QmVuLTEwLVN0ZWFtLUNhbXA=", "d3d3LjJkYW5zLmNvbS9nYW1lcy9iZW4xMHN0ZWFtY2FtcC8=", "", 0, "!d!T-t#landscape#action#combat#shooting"], //ben-10-steam-camp // i.cartoonnetwork.com/games/ben-10/steam-camp/index_!!EN!!AR!!DE!!ES!!FR!!IT!!PL!!RU!!TR!!XX.html
10310            ["QmVuLTEwLVNhdmFnZS1QdXJzdWl0", "d3d3LjJkYW5zLmNvbS9nYW1lcy9iZW4xMHNhdmFnZXB1cnN1aXQv", "", 0, "!d!T-t#landscape#action#combat#platform"], //ben-10-savage-pursuit-new
10311            ["V2F0ZXJzb25z", "d3d3LjJkYW5zLmNvbS9nYW1lcy93YXRlcnNvbnMv", "", 0, "!d!T-t#landscape#cute#ball"], //watersons-new
10312            ["RnJvemVuLVJ1c2g=", "cGxheS5sb2wuZGlzbmV5LmNvbS92MS9maWxlcy9hNTEzMTNlMC1lM2RjLTExZTYtYmY3Ny0wNjA5ZGEwMDAwMzQvaW5kZXguaHRtbA==", "", 0, "!d!T-t!so#landscape#action#girls#platform"],
10313            ["QXR0YWNrLU9mLVRoZS1Ecm9uZXM=", "d3d3LjJkYW5zLmNvbS9nYW1lcy9hdHRhY2tvZnRoZWRyb25lcy8=", "", 0, "!d!T-t#landscape#action#shooting"], //attack-of-the-drones-new
10314            ["SnVtcC1DaXR5LVJlc2N1ZQ==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9qdW1wY2l0eXJlc2N1ZS8=", "", 0, "!d!T-t#landscape#action#combat#platform"], //jump-city-rescue-new
10315            ["RHJhdy1PbmUtUGFydC00", "ODgxMjIwNDgwOTcxNjQ2NTUzNi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait#art"], //draw-one-part-4 8812204809716465536.playables.usercontent.goog/v/assets/index.html //fixed-15-08-2026
10316            ["RHJhdy1DbGltYmVy", "NjA0Nzk5MDk4MDI2NjUyNTIyNC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait#x3d#creative#multiplayer#platform#puzzle#racing#running"], //draw-climber 6047990980266525224.playables.usercontent.goog/v/assets/index.html //fixed-31-07-2026
10317            ["V29yZHMtT2YtV29uZGVycw==", "MTAyNjY3NTIyMjMyNzQwODIzMDAucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait#puzzle#word"],
10318            ["U3VwZXItQWdlbnQ=", "d3d3Lnl1cmsuY29tL2dhbWVzL3N1cGVyYWdlbnQvbC5odG1s", "", 0, "!D-p!t!p#landscape#action#platform#puzzle#shooting"],
10319            ["RmFzaGlvbi1EZXNpZ25lci1OZXctWW9yaw==", "d3d3LmZlbW8uY29tL2dhbWVzL2Zhc2hpb25kZXNpZ25lcm5ld3lvcmsvbC5odG1s", "", 0, "!d!T-c#landscape#creative#dressup#girls#jobs"],
10320            ["UHVsbC1UaGUtUGlu", "d3d3Lnl1cmsuY29tL2dhbWVzL3B1bGx0aGVwaW4vbC5odG1s", "", 0, "!3pk!d!t#portrait#puzzle"],
10321            ["RmlzaC1SZXNjdWU=", "d3d3Lnl1cmsuY29tL2dhbWVzL2Zpc2hyZXNjdWUvbC5odG1s", "", 0, "!2pk-p!d!t#portrait#animals#cute#puzzle"], //fish-rescue
10322            ["SnVuaW9yLVB1enpsZXM=", "Y2RuMS5lZGdlZGF0Zy5jb20vdG1sL2FwcHMvZG5vdy9nYW1lcy9nYW1lcy9nYW1lLWRqci1wdXp6bGVzLzEuMC41Mi9pbmRleC5odG1s", "", 0, "!d!T-t#landscape#animals#cute#kiddies#puzzle"],
10323            ["SnVuaW9yLU1hdGNoaW5n", "Y2RuMS5lZGdlZGF0Zy5jb20vdG1sL2FwcHMvZG5vdy9nYW1lcy9nYW1lcy9nYW1lLWRpc25leS1qdW5pb3ItbWF0Y2hpbmcvMS4wLjEzL2luZGV4Lmh0bWw=", "", 0, "!d!T-t#landscape#kiddies#puzzle"],
10324            ["TWFsLXZzLVVtYQ==", "Y2RuMS5lZGdlZGF0Zy5jb20vdG1sL2FwcHMvZG5vdy9nYW1lcy9nYW1lcy9nYW1lLWRlc2NlbmRhbnRzMi1tYWwtdnMtdW1hLzEuMC4zL2luZGV4Lmh0bWw=", "", 0, "!d!t#landscape#girls#platform"],
10325            ["QmFkLUljZS1DcmVhbQ==", "MmRhbnMuY29tL2dmLmh0bWw/YTJSaGRHRXhMbU52YlM4eU1ESXlMekV4TDJKaFpDMXBZMlV0WTNKbFlXMHYsUW1Ga0xVbGpaUzFEY21WaGJRPT0=", "a2RhdGExLmNvbS8yMDIyLzExL2JhZC1pY2UtY3JlYW0vc2tpbi9wb2tpLW5pdHJvbWVfYm9yZGVyLnBuZw==", 836, "!d!T-c#landscape#action#2player#action#retro"], //mon-bad-icecream
10326            ["QmFkLUljZS1DcmVhbS0y", "MmRhbnMuY29tL2dmLmh0bWw/YTJSaGRHRXhMbU52YlM4eU1ESXlMekV4TDJKaFpDMXBZMlV0WTNKbFlXMHRNaTg9LFFtRmtMVWxqWlMxRGNtVmhiUzB5", "", 0, "!2pk-l!d!T-c#landscape#2player#action#retro"],
10327            ["QmFkLUljZS1DcmVhbS0z", "MmRhbnMuY29tL2dmLmh0bWw/YTJSaGRHRXhMbU52YlM4eU1ESXlMekV5TDJKaFpDMXBZMlV0WTNKbFlXMHRNeTg9LFFtRmtMVWxqWlMxRGNtVmhiUzB6", "", 0, "!2pk-l!d!T-c#landscape#2player#action#retro"],
10328            ["Q29sb3ItTWF0Y2g=", "MTgyNzA3NDg3NDMxNjAwOTcwNDAucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait#art#creative#puzzle"],
10329            ["UHJpbWUtRW1waXJl", "d3d3LmxlZ28uY29tL2Fzc2V0cy9mcmFuY2hpc2VTaXRlcy9OaW5qYWdvL3ByaW1lZW1waXJlL2luZGV4Lmh0bWw=", "", 0, "!d!t#landscape#adventure#combat#platform"],
10330            ["RGFyd2luJ3MtWWVhcmJvb2s=", "d3d3LjJkYW5zLmNvbS9nYW1lcy9kYXJ3aW5zeWVhcmJvb2sv", "", 0, "!d!t#landscape#adventure#cute#platform#puzzle"], //darwins-yearbook-new
10331            ["UmVzY3VlLU9mLVRpdGFucw==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9yZXNjdWVvZnRpdGFucy8=", "", 0, "!d!T-t!nipn#landscape#action#shooting"],   //rescue-of-titans-new
10332            ["Qk1PLVBsYXktQWxvbmctV2l0aC1NZQ==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9ibW9wbGF5YWxvbmd3aXRobWUv", "", 0, "!d!T-t#landscape#cute#kiddies#misc"], //bm-play-along-with-me-new
10333            ["QmVuLTEwLVBlbmFsdHktUG93ZXI=", "d3d3LjJkYW5zLmNvbS9nYW1lcy9iZW4xMHBlbmFsdHlwb3dlci8=", "", 0, "!d!T-t#landscape#ball#soccer#sport"], //ben-10-penalty-power-new
10334            ["RGlzYy1EdWVs", "d3d3LjJkYW5zLmNvbS9nYW1lcy9kaXNjZHVlbC8=", "", 0, "!2pk!d!T-t#landscape#2player#sport"], //disc-duel-new
10335            ["U3RldmUncy1Xb3JsZA==", "d3d3Lnl1cmsuY29tL2dhbWVzL3N0ZXZlc3dvcmxkL2wuaHRtbA==", "", 0, "!d!t!nipn#landscape#action#platform#retro"],
10336            ["VGhlLVJpZ2h0LU1peA==", "d3d3Lnl1cmsuY29tL2dhbWVzL3RoZXJpZ2h0bWl4L2wuaHRtbA==", "", 0, "!2pk-p!d!T-c#landscape#puzzle"],
10337            ["WXVyay1CbG9ja3M=", "d3d3Lnl1cmsuY29tL2dhbWVzL3l1cmtibG9ja3Mv", "", 0, "!d!t#portrait#puzzle"],
10338            ["TWVjaGFuZ2VsaW9uLVJvYm90LUZpZ2h0aW5n", "MTE4MjMyNjMzODUxMjE2MjUxMDUucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!T-t!webp#portrait#x3d#combat"],
10339            ["U3RhdGUtaW8=", "MTA0MjU5NzcwMzI3OTkwMTg2MzcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t#portrait#action#board#strategy"],
10340            ["Q29sb3JpbmctR2FtZS1Gb3ItS2lkcw==", "d3d3Lnl1cmsuY29tL2dhbWVzL2NvbG9yaW5nZ2FtZWZvcmtpZHMv", "", 0, "!2pk-p!d!T-t#landscape#art"],
10341            ["Qm9iLVRoZS1Sb2JiZXItVG8tR28=", "d3d3Lnl1cmsuY29tL2dhbWVzL2JvYnRoZXJvYmJlcnRvZ28v", "", 0, "!2pk-l!D-c!t#portrait#platform#puzzle"], //bob-the-robber-to-go
10342            ["RW1vamktUHV6emxl", "MTQxODg3OTc5ODk4NTUwNzk1MjQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait#puzzle"],
10343            ["VHVyYm8tU3RhcnM=", "MTgwMTk0NzQ2MTE3MTgzMjE4NTcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait#x3d#action#racing#sport"],
10344            ["U2xpY2UtSXQtQWxs", "MTY1MzA2MDU2MTQwMzU2NjIyMzYucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait#x3d#action#"], //slice-it-all 16530605614035662236.playables.usercontent.goog/v/assets/index.html //fixed-13-05-2026
10345            ["QW5ncnktQmlyZHMtU2hvd2Rvd24=", "MzQxMTM2NzQwNjU4OTM2OTA1NS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp!so#landscape#animals"],
10346            ["U3RlYWxpbmctVGhlLURpYW1vbmQ=", "d3d3Lnl1cmsuY29tL2dhbWVzL3N0ZWFsaW5ndGhlZGlhbW9uZC8=", "", 0, "!2pk-l!d!T-c#landscape#adventure#click"],
10347            ["QnJlYWtpbmctVGhlLUJhbms=", "d3d3Lnl1cmsuY29tL2dhbWVzL2JyZWFraW5ndGhlYmFuay8=", "", 0, "!2pk-l!d!T-c#landscape#adventure#click"],
10348            ["RXNjYXBpbmctVGhlLVByaXNvbg==", "d3d3Lnl1cmsuY29tL2dhbWVzL2VzY2FwaW5ndGhlcHJpc29uLw==", "", 0, "!2pk-l!d!T-c#landscape#adventure#click"],
10349            ["UG9ja2V0LUNoYW1waW9ucw==", "cG9ja2V0Y2hhbXBpb25zLmg1Z2FtZXMudXNlcmNvbnRlbnQuZ29vZy92LzQ3ZGduaTAxMWhnMGcv", "", 0, "!d!t!webp#portrait#2player#ball#sport"],
10350            ["Q29sb3ItUGFnZS1BU01S", "MTI5OTQ4OTEwODc0NzA5NDA2OTAucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait#art"], //color-page-asmr 12994891087470940690.playables.usercontent.goog/v/assets/index.html //fixed 11-08-2026
10351            ["U29uaWMtQ2hhb3M=", "MmRhbnMuY29tL3Ntcy9zb25pY2NoYW9zLw==", "", 0, "!2pk-l!d!T-c!p!so#landscape#animals#platform#retro"],
10352            ["U2FtaSdzLU5haWwtU3R1ZGlv", "d3d3Lnl1cmsuY29tL2dhbWVzL3NhbWlzbmFpbHN0dWRpby8=", "", 0, "!2pk-l!d!T-c#landscape#creative#cute#girls#jobs"],
10353            ["Qm9tYmVybWFu", "d3d3Lnl1cmsuY29tL2dhbWVzL2JvbWJlcm1hbi8=", "", 0, "!2pk-l!d!T-c#landscape#action#cute#2player#strategy"],
10354            ["VGhlLVNlYS1PZi1HbG9tcA==", "d3d3Lnl1cmsuY29tL2dhbWVzL3RoZXNlYW9mZ2xvbXAv", "", 0, "!2pk-l!d!T-c#landscape#adventure#animals#puzzle"],
10355            ["U2xpbWUtTGFib3JhdG9yeQ==", "ZnJlZXRvcGxheXouZ2l0aHViLmlvL3NsaW1lLWxhYm9yYXRvcnkv", "", 0, "!3pk!d!T-c#landscape#platform#puzzle#retro"], //slime-laboratory freetoplayz.github.io/slime-laboratory/
10356            ["UXVpY2stRHJhdw==", "cXVpY2tkcmF3LndpdGhnb29nbGUuY29tLw==", "", 0, "!d!t#landscape#art#creative"], //quick-draw
10357            ["S25vY2stZW0tQWxs", "MTgyMzcyNzUxNjI5NDc4NTc3MDQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait#x3d#combat#shooting"],
10358            ["TWFkLUNhcnMtUmFjaW5nLUFuZC1DcmFzaA==", "aS5nYW1lc2dvLm5ldC91cGxvYWRzL2dhbWUvaHRtbDUvMTAxNjMv", "", 0, "!3pk!d!T-c#landscape#x3d#motorsport#multiplayer#racing"], //mad-cars-racing-and-crash i.gamesgo.net/uploads/game/html5/10163/
10359            ["Q2F2ZW1hbg==", "d3d3Lnl1cmsuY29tL2dhbWVzL2NhdmVtYW4v", "", 0, "!2pk-l!d!T-c#landscape#action#cute#platform"],
10360            ["RHV0Y2htYW4ncy1EYXNo", "d3d3Lnl1cmsuY29tL2dhbWVzL2R1dGNobWFuc2Rhc2gv", "", 0, "!2pk-l!d!T-c!so#landscape#cute#platform"],
10361            ["SmlueC1BbmQtTWlueC1Ub3dlci1Fc2NhcGU=", "d3d3Lnl1cmsuY29tL2dhbWVzL2ppbnhhbmRtaW54dG93ZXJlc2NhcGUv", "", 0, "!2pk-l!d!T-c#landscape#adventure#halloween#puzzle"],
10362            ["UG9sbHktUGFydHktUGlja3Vw", "d3d3Lnl1cmsuY29tL2dhbWVzL3BvbGx5cGFydHlwaWNrdXAv", "", 0, "!2pk-l!d!T-c#landscape#girls#jobs"],
10363            ["U2F2YWdlLVB1cnN1aXQ=", "d3d3Lnl1cmsuY29tL2dhbWVzL3NhdmFnZXB1cnN1aXQv", "", 0, "!2pk-l!d!T-c#landscape#action#adventure#platform"],
10364            ["U2ltLVRheGk=", "d3d3Lnl1cmsuY29tL2dhbWVzL3NpbXRheGkv", "", 0, "!2pk-l!d!T-c#landscape#jobs"],
10365            ["U3F1YXJlLUhlcm8tT3JpZ2lucw==", "d3d3Lnl1cmsuY29tL2dhbWVzL3NxdWFyZWhlcm9vcmlnaW5zLw==", "", 0, "!2pk-l!d!T-c#landscape#action#platform"],
10366            ["U3Rhci1TY3JhbWJsZQ==", "d3d3Lnl1cmsuY29tL2dhbWVzL3N0YXJzY3JhbWJsZS8=", "", 0, "!p!2pk-l!d!T-c!so#landscape#action#cute#platform'retro"],
10367            ["RGFyd2luLVJlc2N1ZQ==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9kYXJ3aW5yZXNjdWUv", "", 0, "!d!t#landscape#adventure#puzzle"], //darwin-rescue-new
10368            ["THVuY2gtQm94LVJlYWR5", "MTM4OTk1MTU1OTU5ODI3NTU5NTIucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#landscape#food#puzzle"],
10369            ["Qmx1ZXktTWFnaWMtWHlsb3Bob25l", "ZW1iZWQuY2JlZWJpZXMuY29tL2JsdWV5LW1hZ2ljLXh5bG9waG9uZS8=", "", 0, "!d!T-t!nipn!so#landscape#animals#cute#dressup#kiddies#music"],
10370            ["R3VhcmRpYW5zLU9mLVRoZS1HYWxheHk=", "d3d3LmxlZ28uY29tL2Fzc2V0cy9GcmFuY2hpc2VTaXRlcy9NYXJ2ZWxTdXBlckhlcm9lcy9Hb3RnL0dhbWUvdjEuNC9pbmRleC5odG1s", "", 0, "!d!T-t!nipn#landscape#action#adventure#platform#shooting"],
10371            ["VW5pa2l0dHktU2F2ZS1UaGUtS2luZ2RvbQ==", "d3d3LjJkYW5zLmNvbS9nYW1lcy91bmlraXR0eXNhdmV0aGVraW5nZG9tLw==", "", 0, "!d!t!nipn#landscape#animals#cute#platform"], //unikitty-save-the-kingdom-new
10372            ["U2thdGUtUnVzaA==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9za2F0ZXJ1c2gv", "", 0, "!d!t!nipn#portrait#x3d#action#racing"],
10373            ["QmVuLTEwLVdvcmxkLVJlc2N1ZQ==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9iZW4xMHdvcmxkcmVzY3VlLw==", "", 0, "!d!t!nipn#landscape#action#combat#platform"], //ben-10-world-rescue-new
10374            ["VGhlLUd1bWJhbGwtR2FtZXM=", "d3d3LjJkYW5zLmNvbS9nYW1lcy90aGVndW1iYWxsZ2FtZXMv", "", 0, "!d!T-t#landscape#running#sport"], //the-gumball-games-new
10375            ["RmlzdC1QdW5jaA==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9maXN0cHVuY2gv", "", 0, "!d!T-t!nipn#landscape#action#animals#combat#platform"], //fist-punch-new
10376            ["U3VwZXItTGF0ZQ==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9zdXBlcmxhdGUv", "", 0, "!d!t!nipn#landscape#action#girls#platform#running"], //super-late-new
10377            ["VmVnZ2llLVZpbGxhZ2UtUXVlc3Q=", "d3d3LjJkYW5zLmNvbS9nYW1lcy92ZWdnaWV2aWxsYWdlcXVlc3Qv", "", 0, "!d!t#landscape#adventure#platform#puzzle"], //veggie-village-quest-new
10378            ["U2hhcGUtQW5kLU1ha2UtUm9hZC1Ucmlw", "Y2RuMS5lZGdlZGF0Zy
103785jb20vdG1sL2FwcHMvZG5vdy9nYW1lcy9nYW1lcy9nYW1lLWRpc25leS1maXJzdHMtbWlja2V5LXNoYXBlLzEuMC41L2luZGV4Lmh0bWw=", "", 0, "!en!d!t!nipn!so#landscape#kiddies#motorsport#puzzle"], //shape-and-make-road-trip //lcs
10379            ["R28tUHVwcy1HbyE=", "Y2RuMS5lZGdlZGF0Zy5jb20vdG1sL2FwcHMvZG5vdy9nYW1lcy9nYW1lcy9nYW1lLWdvLXB1cHMtZ28vMS4wLjQvaW5kZXguaHRtbA==", "", 0, "!en!d!t!nipn#landscape#animals#kiddies#platfor#puzzle"],
10380            ["Q2Fycy1MaWdodG5pbmctU3BlZWQ=", "cGxheS5nYW1lcy5kaXNuZXkuY29tL3YxL2ZpbGVzLzBmMjI5ZDQwLTFlODEtMTFlNi04OWYxLTA2MmJjODAwMDAzNS9yZWxlYXNlMy9pbmRleC5odG1s", "", 0, "!d!T-c#landscape#action#motorsport#racing"], //forestry-available
10381            ["TWluZC1Zb3VyLU1hbm5lcnMtVGVhLVBhcnR5", "Y2RuMS5lZGdlZGF0Zy5jb20vdG1sL2FwcHMvZG5vdy9nYW1lcy9nYW1lcy9nYW1lLWRpc25leS1maXJzdHMtZmFuY3ktbmFuY3ktbWFubmVycy8xLjAuNS9pbmRleC5odG1s", "", 0, "!en!D-t!t!nipn#landscape#kiddies"], //fails-in-chrome :(
10382            ["UG9nby1Uby1UaGUtRnV0dXJl", "czMtZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vYmVhbm8tcHJvZHVjdGlvbi11cGxvYWRzL2dhbWUtdXBsb2Fkcy9iOTQ2N2YwMWVmZTNiNjc4NzMwMDA3YmZkZjM2ZWVjMzRjYmZlMjY4MTAzNzEyMGMwZjk5NjcwZjRhMmYvUG9nb0V4cG9ydF8xMS4wZGFpc3kvRXhwb3J0LTEyLTEyLTIwMTkvaW5kZXguaHRtbA==", "", 0, "!D-p!t!p#landscape#action#platform#retro"],
10383            ["Qmxhc3QtT2Zm", "d3d3LjJkYW5zLmNvbS9nYW1lcy9ibGFzdG9mZi8=", "", 0, "!d!T-t!so#landscape#animals#creative#kiddies"], //blast-off-new
10384            ["VG9tLUFuZC1KZXJyeS1QdXp6bGUtRXNjYXBl", "d3d3LjJkYW5zLmNvbS9nYW1lcy90b21hbmRqZXJyeXB1enpsZWVzY2FwZS8=", "", 0, "!d!t!so#landscape#animals#click#puzzle"],
10385            ["VmVnZ2llLVBhdGNo", "d3d3LjJkYW5zLmNvbS9nYW1lcy92ZWdnaWVwYXRjaC8=", "", 0, "!2pk!d!T-t!so#landscape#animals#food#jobs"], //veggie-patch-new
10386            ["Q2hhc2luZy1KZXJyeQ==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9jaGFzaW5namVycnkv", "", 0, "!d!T-t!so#landscape#animals#board#kiddies#2player"], //chasing-jerry-new
10387            ["VGhlLU15c3RlcmlvdXMtTWFuc2lvbg==", "d3d3LjJkYW5zLmNvbS9nYW1lcy90aGVteXN0ZXJpb3VzbWFuc2lvbi8=", "", 0, "!2pk!d!T-t#landscape#halloween#puzzle"], //the-mysterious-mansion-new
10388            ["U2Nvb3Rlci1TdHJlYW1lcnM=", "d3d3LjJkYW5zLmNvbS9nYW1lcy9zY29vdGVyc3RyZWFtZXJzLw==", "", 0, "!2pk!d!T-t#landscape#action#animals#platform"], //scooter-streamers-new
10389            ["QnVtYmxlYmVlLVJvYm90LVJlc2N1ZQ==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9idW1ibGViZWVyb2JvdHJlc2N1ZS8=", "", 0, "!2pk!d!t#landscape#x3d#action"], //bumblebee-robot-rescue-new
10390            ["Qk1YLUNoYW1waW9ucw==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9ibXhjaGFtcGlvbnMv", "", 0, "!3pk!d!t#landscape#action#multiplayer#sport#racing"], //outlinks //bmx-champions-orig-cn
10391            ["Vm90ZS1Gb3ItR3VtYmFsbA==", "d3d3LjJkYW5zLmNvbS9nYW1lcy92b3RlZm9yZ3VtYmFsbC8=", "", 0, "!d!t#landscape#platform#puzzle"], //vote-for-gumball-new
10392            ["QmFieS1IYXplbC1CYXRocm9vbS1IeWdpZW5l", "MmRhbnMuY29tL2dmLmh0bWw/YUhSdGJEVXVaMkZ0WldScGMzUnlhV0oxZEdsdmJpNWpiMjB2TXpSa05tSXpZamczWWpnNU5EQm1PRGd5T1RKaE1EUTJaV015WTJWa1pXSXZQM1JwYldWemRHRnRjRDB4TmpRMU
103925UVTFPRFF6Sm1OdmRXNTBjbmxEYjJSbFBXVnVKbk5wZEdWcFpEMDVNQ1pqYUdGdWJtVnNhV1E5TXlaemFYUmxURzlqWVd4bFBXVnVKbXh2WTJGc1pUMWxiaVpuWkY5elpHdGZjbVZtWlhKeVpYSmZkWEpzUFdoMGRIQnpKVE5CSlRKR0pUSkdkM2QzTG1kcGNteHpaMjluWVcxbGN5NWpiMjBsTWtabllXMWxKVEpHWW1GaWVTMW9ZWHBsYkMxaVlYUm9jbTl2YlMxb2VXZHBaVzVsLFFtRmllUzFJWVhwbGJDMUNZWFJvY205dmJTMUllV2RwWlc1bA==", "", 0, "!3pk!d!T-c#landscape#girls#jobs"],
10393            ["Q3V0LVRoZS1Sb3Bl", "MWNxODRsMzAyaHBkZy5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi82MDFxZXJxajNsYjkwLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp!so#portrait#action#cute#puzzle"], //cut-the-rope 1cq84l302hpdg.h5games.usercontent.goog/v/601qerqj3lb90/?origin=https%3A%2F%2Fgamesnacks.com
10394            ["Q3V0LVRoZS1Sb3BlLTI=", "N21jaWlmZm5iODNiMC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8zcWhpZXI4dHNrZDVnLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp!so#portrait#action#cute#puzzle"], //Cut-The-Rope-2 7mciiffnb83b0.h5games.usercontent.goog/v/3qhier8tskd5g/?origin=https%3A%2F%2Fgamesnacks.com
10395            ["Q3V0LVRoZS1Sb3BlLVRpbWUtVHJhdmVs", "MDNzODFtajVjdWYxMC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi80bmY3a3M2OGtlbWVvLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp!so#portrait#action#cute#puzzle"], //Cut-The-Rope-Time-Travel 03s81mj5cuf10.h5games.usercontent.goog/v/4nf7ks68kemeo/?origin=https%3A%2F%2Fgamesnacks.com
10396            ["UmVkLUJhbGwtNC1Wb2x1bWUtMQ==", "MmRhbnMuY29tL2dmLmh0bWw/WjJGdFpYTXRiMjVzYVc1bExtbHZMMmRoYldVdlVtVmtRbUZzYkY5V01TOD0sVW1Wa0xVSmhiR3d0TkMxV2IyeDFiV1V0TVE9PSxVbVZrTFVKaGJHd3ROQzFXYjJ4MWJXVXRNZz09", "", 0, "!3pk!d!T-c#landscape#puzzle#platform"],
10397            ["UmVkLUJhbGwtNC1Wb2x1bWUtMg==", "MmRhbnMuY29tL2dmLmh0bWw/WjJGdFpYTXRiMjVzYVc1bExtbHZMMmRoYldVdlVtVmtRbUZzYkY5V01pOD0sVW1Wa0xVSmhiR3d0TkMxV2IyeDFiV1V0TWc9PQ==", "", 0, "!3pk!d!T-c#landscape#puzzle#platform"],
10398            ["UmVkLUJhbGwtNC1Wb2x1bWUtMw==", "MmRhbnMuY29tL2dmLmh0bWw/WjJGdFpYTXRiMjVzYVc1bExtbHZMMmRoYldVdlVtVmtRbUZzYkY5V015OD0sVW1Wa0xVSmhiR3d0TkMxV2IyeDFiV1V0TXc9PQ==", "", 0, "!3pk!d!T-c#landscape#puzzle#platform"],
10399            ["RnJlbmVtaWVz", "d3d3LjJkYW5zLmNvbS9nYW1lcy9mcmVuZW1pZXMv", "", 0, "!d!t#landscape#action#girls#platform#running"], //frenemies-new
10400            ["UG9rZXktQmFsbA==", "MTIxODQzOTQ5NTQ5NDk1MTY5ODcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait#x3d#action#ball"], //pokey-ball 12184394954949516987.playables.usercontent.goog/v/assets/index.html //fixed-21-05-2026
10401            ["RWF0aW5nLVNpbXVsYXRvcg==", "d3d3Lnl1cmsuY29tL2dhbWVzL2VhdGluZ3NpbXVsYXRvci8=", "", 0, "!d!t!webp#portrait#food"], //eating-sim
10402            ["SmVsbHlzdG9uZS1FeHByZXNz", "d3d3LjJkYW5zLmNvbS9nYW1lcy9qZWxseXN0b25lZXhwcmVzcy8=", "", 0, "!d!T-t#landscape#x3d#adventure#jobs#motorsport"], //jellystone-express-new
10403            ["TWFoam9uZ2ctU29saXRhaXJl", "MTczNzgwMTA1MzExOTI1NjI4OTMucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait#puzzle"], //Mahjongg-Solitaire
10404            ["R3Vlc3MtVGhlaXItQW5zd2Vy", "MTEwNzQyMjQ1NDMxOTIwMTQyLnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp!en#portrait#word"], //guess-their-answer 110742245431920142.playables.usercontent.goog/v/assets/index.html //fixed 21/05/2026
10405            ["Vm9sbGV5YmFsbA==", "d3d3LjJkYW5zLmNvbS9nYW1lcy92b2xsZXliYWxsLw==", "", 0, "!d!t!webp!so#landscape#ball#sport"], //volley-ball-new
10406            ["RmFzaGlvbi1CYXR0bGU=", "NjA3Njk2OTA4NDg1Njk4Njk2NS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait#x3d#creative#dressup"], //mon-fashion-battle 6076969084856986965.playables.usercontent.goog/v/assets/index.html //fixed-03-06-2026
10407            ["VHdlZXR5J3MtUGlwZS1QcmFua3M=", "d3d3LjJkYW5zLmNvbS9nYW1lcy90d2VldHlzcGlwZXByYW5rcy8=", "", 0, "!3pk!d!t!webp!so#landscape#platform#puzzle"], //tweetys-pipe-pranks-new
10408            ["Um9wZS1XcmFwcGVy", "d3d3Lnl1cmsuY29tL2dhbWVzL3JvcGV3cmFwcGVyLw==", "", 0, "!D-t!t#portrait#puzzle"], //rope-wrapper
10409            //
10410            ["UG91", "MTYwMTE1NzUwMDgwMzQ2MjgzNzIucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 254, "!d!t!webp#portrait#cute#creative#dressup#kiddies"], //Pou 16011575008034628372.playables.usercontent.goog/v/assets/index.html
10411            //["UG91", "d3d3LjJkYW5zLmNvbS9nYW1lcy9wb3Uv", "", 0, "!d!t!webp#landscape"], //pou-new
10412            //
10413            ["U2Nvb2J5LURvby1GdW5mYWlyLVNjYXJl", "d3d3LjJkYW5zLmNvbS9nYW1lcy9zY29vYnlkb29mdW5mYWlyc2NhcmUv", "", 0, "!2pk!d!t!so!webp#landscape#halloween#puzzle"], //scooby-doo-funfair-scare-new
10414            ["QmF0d2hlZWxzLUdvdGhhbS1HZXRhd2F5", "d3d3LjJkYW5zLmNvbS9nYW1lcy9iYXR3aGVlbHNnb3RoYW1nZXRhd2F5Lw==", "", 0, "!d!T-t!webp!so#landscape#action#kiddies#motorsport"], //batwheels-gotham-getaway-new
10415            ["Rm9vZC1UaGllZg==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9mb29kdGhpZWYv", "", 0, "!d!T-t!webp!so#landscape#action#food#puzzle"], //food-thief-new
10416            ["VG9tYi1PZi1UaGUtTWFzaw==", "ODgxNTYwNDY2OTEyNTkyMzY3NS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!D-t!t!p#portrait#puzzle#retro"], //tomb-of-the-mask
10417            ["RGVsZXRlLU9uZS1QYXJ0LTI=", "MTQ3Mjc3ODM1MzY0OTQ0ODYyNTQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait#art#cute#kiddies"], //delete-one-part 14727783536494486254.playables.usercontent.goog/v/assets/index.html //fixed-07-09-2026
10418            ["THVkby1LaW5n", "MTcxNjUyNzgxMDg5MTA3MjM2LnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait#3player#board#strategy"], //ludo-king 171652781089107236.playables.usercontent.goog/v/assets/index.html //fixed-21-05-2026
10419            ["RGlnLURlZXA=", "NDg4MDQ1MjA1Njc5MTM3MzkzOS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait#x3d#jobs"], //dig-deep 4880452056791373939.playables.usercontent.goog/v/assets/index.html //fixed-15-08-2026
10420            ["QWRvcmFibGUtSG9tZQ==", "ODQwMDA4MDI2NTg3MDU2Njg3MC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!en!d!T-t!webp#landscape#animals#creative#dressup#food#girls#jobs"], //adorable-home 8400080265870566870.playables.usercontent.goog/v/assets/index.html //fixed-25-05-2026
10421            ["Rmxvdy1MZWdlbmRz", "MTYzNDg0ODg3MTQzOTg0NDU0ODgucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!T-t!webp#portrait#cute#jobs#puzzle"], //flow-legends 16348488714398445488.playables.usercontent.goog/v/assets/index.html
10422            ["Rm9yay1BbmQtU2F1c2FnZQ==", "ODM3NzQ3OTAwNTIwODM2NzM3Ny5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy8=", "", 0, "!d!t!webp#portrait#x3d#cute#food#puzzle"],
10423            ["UGFwZXItUmFjZXJz", "ZGVzOThmejVqc29zNC5jbG91ZGZyb250Lm5ldC9ib29tZXJhbmcvZHluYW1pYy93ZWJfZ2FtZS8wMDAwMDAwNS81MzQ5L2Rlc2t0b3BfZ2FtZS9pbmRleC5odG1s", "", 0, "!2pk!d!T-t#landscape#x3d#action#animals#motorsport#racing"],
10424            ["SXNsYW5kLUFkdmVudHVyZXM=", "d3d3LjJkYW5zLmNvbS9nYW1lcy9pc2xhbmRhZHZlbnR1cmVzLw==", "", 0, "!d!T-t!webp#landscape#action#adventure#puzzle"], //island-adventures-new
10425            ["UmF2ZW4tU3BlbGxib29rLUh1bnQ=", "d3d3LjJkYW5zLmNvbS9nYW1lcy9yYXZlbnNwZWxsYm9va2h1bnQv", "", 0, "!d!T-t!webp#landscape#action#adventure#platform#puzzle"], //raven-spellbook-hunt-new
10426            //
10427            ["TW9uZXktTW92ZXJz", "YXNzZXRzLnRscGcubmwvZ2FtZXMva2lkcy84LzIyNjY4L2luZGV4Lmh0bWw=", "", 0, "!d!T-t!webp#landscape#2player#platform#puzzle"], //Money-Movers assets.tlpg.nl/games/kids/8/22668/index.html
10428            ["TW9uZXktTW92ZXJzLTI=", "YXNzZXRzLnRscGcubmwvZ2FtZXMva2lkcy81LzI0MTM1L2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#landscape#2player#platform#puzzle"], //Money-Movers-2 assets.tlpg.nl/games/kids/5/24135/index.html
10429            ["TW9uZXktTW92ZXJzLTM=", "YXNzZXRzLnRscGcubmwvZ2FtZXMva2lkcy81LzI1MzI1L2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#landscape#2player#platform#puzzle"], //Money-Movers-3 assets.tlpg.nl/games/kids/5/25325/index.html
10430            ["Qm9iLVRoZS1Sb2JiZXItNQ==", "YXNzZXRzLnRscGcubmwvZ2FtZXMva2lkcy83LzExMzQxNy9pbmRleC5odG1s", "", 0, "!d!T-t!webp#landscape#platform#puzzle"], //Bob-The-Robber-5 assets.tlpg.nl/games/kids/7/113417/index.html
10431            ["SGVyb2VzLU9mLU15dGhzLVdhcnJpb3JzLU9mLUdvZHM=", "YXNzZXRzLnRscGcubmwvZ2FtZXMva2lkcy8zLzk0MjUzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#landscape#combat#strategy"], //Heroes-Of-Myths-Warriors-Of-Gods assets.tlpg.nl/games/kids/3/94253/index.html
10432            ["Qm9tYi1JdA==", "YXNzZXRzLnRscGcubmwvZ2FtZXMva2lkcy81LzIwOTI1L2luZGV4Lmh0bWw=", "", 0, "!d!T-t!webp#landscape#action"], //Bomb-It assets.tlpg.nl/games/kids/5/20925/index.html
10433            //
10434            ["Qmx1bWdpLVNsaW1l", "ZGVzdHBsYXkub25saW5lL2djZW50ZXIvZ2FtZXMvQmx1bWdpU2xpbWUvaW5kZXguaHRtbA==", "", 0, "!2pk!d!t!webp#landscape#2player#cute#platform"], //Blumgi-Slime destplay.online/gcenter/games/BlumgiSlime/index.html
10435            ["U3RpY2ttYW4tSG9vaw==", "ZnJlZXRvcGxheXouZ2l0aHViLmlvL3N0aWNrbWFuLWhvb2sv", "", 0, "!2pk!d!t!webp#landscape#action"], //Stickman-Hook freetoplayz.github.io/stickman-hook/ //fixed-08-07-2026
10436            ["RHJpdmUtTW9uc3Rlcg==", "ZGVzdHBsYXkub25saW5lL2djZW50ZXIvZ2FtZXMvRHJpdmVNb25zdGVyL2luZGV4Lmh0bWw=", "", 0, "!2pk!d!t!webp#landscape#x3d#action#motorsport"], //
10436Drive-Monster destplay.online/gcenter/games/DriveMonster/index.html
10437            //
10438            ["TW9ua2V5LU1hcnQ=", "bW9ua2V5bWFydGZyZWUuY29tL3BsYXkvbW9ua2V5LW1hcnQv", "", 0, "!3pk!d!t!webp#landscape#animals#cute#jobs#strategy"], //Monkey-Mart monkeymartfree.com/play/monkey-mart/ //fixed-29-08-2026
10439            ["Qm93LU1hc3RlcnM=", "NDc3NzQyNDI5Njc5NTA0NTk5NS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#landscape#shooting#sport"], //Bow-Masters 4777424296795045995.playables.usercontent.goog/v/assets/index.html //fixed-31-07-2026
10440            ["QXJjaGVyeS1Xb3JsZC1Ub3Vy", "YXJjaGVyeS5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi9mMTJmYjJhYS1kNjRiLTQwNzQtODk3NC0zMTcwNTY5OGUyZTYvP29yaWdpbj1odHRwcyUzQSUyRiUyRmdhbWVzbmFja3MuY29t", "", 0, "!2pk!d!t!webp#landscape#shooting#sport"], //Archery-World-Tour archery.h5games.usercontent.goog/v/f12fb2aa-d64b-4074-8974-31705698e2e6/?origin=https%3A%2F%2Fgamesnacks.com
10441            ["VG90ZW1pYS1DdXJzZWQtTWFyYmxlcw==", "MTA5MTU3MDMxMjY0Mjg5NTkzODMucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!2pk!d!T-t!webp#portrait#ball#strategy"], //Totemia-Cursed-Marbles 10915703126428959383.playables.usercontent.goog/v/assets/index.html //lcs
10442            ["V29vZC1OdXRzLUFuZC1Cb2x0cw==", "ODM3Mzg0MDA0NTE0MDg3OTgxNi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!2pk!d!t!webp#portrait#board#multiplayer"], //Wood-Nuts-And-Bolts 16557104626163181320.allownetworkplayables.usercontent.goog/v/assets/index.html
10443            ["UG9rZS1UaGUtUHJlc2lkZW50cw==", "d3d3Lnl1cmsuY29tL2dhbWVzL3Bva2V0aGVwcmVzaWRlbnRzLw==", "", 0, "!d!T-t!webp#landscape#click"], //Poke-The-Presidents www.yurk.com/games/pokethepresidents/ SINGLE
10444            ["VG9vbi1DdXA=", "d3d3LjJkYW5zLmNvbS9nYW1lcy90b29uY3VwLw==", "", 0, "!d!t#landscape#action#ball#soccer#sport"], //toon-cup-new
10445            ["U3Vid2F5LVN1cmZlcnMtU2VvdWw=", "d3d3LjJkYW5zLmNvbS9nYW1lcy9zdWJ3YXlzdXJmZXJzc2VvdWwv", "", 0, "!d!t!so#landscape#x3d#action#running"], //subway-surfers-seoul
10446            ["U2tpbmNhcmUtVGltZQ==", "MjM2NzMzODMzNjAwMDQ3ODk4Mi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait#dressup#girls"], //Skincare-Time 2367338336000478982.playables.usercontent.goog/v/assets/index.html
10447            ["U3RhdGUtaW8tT25saW5lLVBWUA==", "NTIyMzE4NzIyNDA5MDMxODY2MC5hbGxvd25ldHdvcmtwbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!2pk!d!t!webp#portrait#multiplayer#strategy"], //State-io-Online-PVP 5223187224090318660.allownetworkplayables.usercontent.goog/v/assets/index.html
10448            ["U29sYXItU21hc2g=", "OTM2MDk3OTgyMDYzODE2OTIyLnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!T-t!webp#landscape#x3d#click"], //Solar-Smash 936097982063816922.playables.usercontent.goog/v/assets/index.html //fixed-31-07-2026
10449            ["Qm91bmNlLU1hc3RlcnM=", "M2VxM3BkNGZwcWFsMC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8xazEzbmIycTJxOXEwLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#landscape#action#animals#cute#kiddies"], //Bounce-Masters 3eq3pd4fpqal0.h5games.usercontent.goog/v/1k13nb2q2q9q0/?origin=https%3A%2F%2Fgamesnacks.com
10450            ["R29sZC1NaW5lci1Ub20=", "MTI1MTY0Mjk4ODcwODg2NzUxMzQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#landscape#jobs"], //Gold-Miner-Tom 12516429887088675134.playables.usercontent.goog/v/assets/index.html //fixed-21-05-2026
10451            ["R28tRXNjYXBl", "MmhyMmNiZGltZnRxZy5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8yZnF1dGJxYjBiNjNnLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait#ball#puzzle"], //Go-Escape 7924993720715225103.playables.usercontent.goog/v/assets/index.html
10452            ["QXF1YS1QYXJr", "MTc1NjkzNzk2MDM3NjQ3NjczNDIucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait#x3d#action#multiplayer#sport"], //Aqua-Park 17569379603764767342.playables.usercontent.goog/v/assets/index.html //fixed-16-06-2026
10453            ["Q2l0eS1TbWFzaA==", "OTQ1NDQyMjU3MjQ0ODE0MzE0Ni5wbGF5YWJsZXMudXNlcmNvbn
10453RlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait#x3d#click"], //City-Smash 9454422572448143146.playables.usercontent.goog/v/assets/index.html
10454            ["UHJpc29uLUxpZmU=", "MTMzNTI4NDI5NjE0Njk1OTQzNC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!T-t!webp#landscape#x3d#jobs#strategy"], //Prison-Life 1335284296146959434.playables.usercontent.goog/v/assets/index.html //fixed-16-05-2026
10455            ["VGFuZ2h1bHUtTWFzdGVy", "NTU2MDU1NTIwNDA4OTM4MTMxNS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!T-t!webp#portrait#cute#food#kiddies"], //Tanghulu-Master 5560555204089381315.playables.usercontent.goog/v/assets/index.html
10456            ["Q2xlYW4tSXQ=", "MTM0MzcwODcwNDM0OTEwMDc0LnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#landscape#x3d#jobs"], //Clean-It 134370870434910074.playables.usercontent.goog/v/assets/index.html
10457            ["UG9ja2V0LUxvdmU=", "OTM3Njg2OTczNDYzMzczNTE5Mi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!T-t!webp#landscape#creative#cute#kiddies#jobs"], //Pocket-Love 9376869734633735192.playables.usercontent.goog/v/assets/index.html //fixed-27-05-2026
10458            ["RmlsbC1UaGUtRnJpZGdl", "NDAxNjcyNzE1Mjk2NzM3MzM4MC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!T-t!webp#portrait#x3d#food#jobs"], //Fill-The-Fridge 4016727152967373380.playables.usercontent.goog/v/assets/index.html
10459            ["U29jY2VyLURhc2g=", "ODczMTMxMDc3ODk0NTgxOTgzMS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait#x3d#ball#sport"], //Soccer-Dash 8731310778945819831.playables.usercontent.goog/v/assets/index.html
10460            ["Q3Jvc3NtYXRo", "MTUyNDc2MzEyNjI2MjY2ODE0NTkucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvd2ViL2luZGV4Lmh0bWw=", "", 0, "!d!T-t!webp#portrait#math#puzzle"], //Crossmath 15247631262626681459.playables.usercontent.goog/v/assets/web/index.html
10461            ["RmluZC1UaGUtVmFtcGlyZQ==", "MTE1MzAwNTQ2NjIwMzU4OTkxMTUucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!T-c!webp#portrait#x3d#halloween#puzzle"], //Find-The-Vampire 11530054662035899115.playables.usercontent.goog/v/assets/index.html
10462            ["TWVyZ2UtTWluZXJz", "MTUwMTAyODU3NTQ2NjQyMTI1OTgucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait#merge#puzzle"], //Merge-Miners 15010285754664212598.playables.usercontent.goog/v/assets/index.html
10463            ["Q29sb3JpbmctQnktTnVtYmVycw==", "OTM4OTM3NTQyNjE3NzUxNzUwMi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!T-t!webp#portrait#art#kiddies"], //Coloring-By-Numbers 9389375426177517502.playables.usercontent.goog/v/assets/index.html //fixed-20-09-2026
10464            ["SG9sZS5pbw==", "MjU4ODgwMDk5MTA2ODMwOTczOC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait#x3d#multiplayer"], //Hole.io 2588800991068309738.playables.usercontent.goog/v/assets/index.html //fixed-29-08-2026
10465            ["QXF1YXJpdW0tTGFuZA==", "NjI0NTEzMDAzMjc5NzIxNTA2OS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait#x3d#jobs"], //Aquarium-Land 6245130032797215069.playables.usercontent.goog/v/assets/index.html
10466            ["UG9ja2V0LVVuaXZlcnNl", "MTEzNzA2ODM5NjA0NDg3ODI5MzEucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait#rpg"], //Pocket-Universe 11370683960448782931.playables.usercontent.goog/v/assets/index.html //fixed-03-06-2026
10467            ["QmFza2V0YmFsbC1TdGFycy0z", "MmRhbnMuY29tL2dhbWVzL2Jhc2tldGJhbGxzdGFyczMv", "", 0, "!d!T-t!webp!so#landscape#action#ball#sport"], //Basketball-Stars-3 2dans.com/games/basketballstars3/
10468            ["TXVkLU1vdW50YWluLVJlc2N1ZQ==", "MmRhbnMuY29tL2dhbWVzL211ZG1vdW50YWlucmVzY3VlLw==", "", 0, "!d!T-t!webp#landscape#action#kiddies#motorsport"], //Mud-Mountain-Rescue 2dans.com/games/mudmountainrescue/
10469            ["Q2FwdHVyZS1UaGUtU2xpbWU=", "MmRhbnMuY29tL2dhbWVzL2NhcHR1cmV0aGVzbGltZS8=", "", 0, "!d!t!webp#landscape#action#platform#shooting"], //Capture-The-Slime 2dans.com/games/capturetheslime/
10470            ["U3RpY2ttYW4tV2FycmlvcnM=", "MjcyNTcyMTAyNDI4NTc4MDYzNi5wbGF5YWJsZXMudXNlcmNvbn
10470RlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!T-t!webp#landscape#action#combat"], //Stickman-Warriors 2725721024285780636.playables.usercontent.goog/v/assets/index.html //fixed-31-07-2026
10471            ["RGFuLVRoZS1NYW4=", "MTExNjU1MTk4ODY3MDI4NTQ0MjcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#landscape#action#combat#retro"], //Dan-The-Man 11165519886702854427.playables.usercontent.goog/v/assets/index.html //fixed-21-05-2026
10472            ["RmluZC1UaGUtRGlmZmVyZW5jZXMtU3BvdC1JdA==", "NzkwNjI3NDQ5MjYzNDIxNTI3LnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!T-t!webp#portrait#puzzle"], //Find-The-Differences-Spot-It 790627449263421527.playables.usercontent.goog/v/assets/index.html
10473            ["V29yZC1TZWFyY2g=", "OTc5ODc3NDkyNjc3MjQ4OTk1OS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait#puzzle#word"], //Word-Search 9798774926772489959.playables.usercontent.goog/v/assets/index.html
10474            ["VGFsbC5pbw==", "MTI3ODYxOTk1MDE5NDg1OTMyNDQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait#x3d#action#multiplayer"], //Tall.io 12786199501948593244.playables.usercontent.goog/v/assets/index.html //fixed-06-06-2026
10475            ["Vm9ydGVsbGEncy1EcmVzc3Vw", "MmRhbnMuY29tL2dmLmh0bWw/WjJGdFpYTXVjR3hoZVhSeWIzQnZiR2x6TG1OdmJTOTJiM0owWld4c1lYTXRaSEpsYzNNdGRYQXYsVm05eWRHVnNiR0VuY3kxRWNtVnpjM1Z3", "", 0, "!d!T-t!so!webp#landscape#x3d#creative#dressup#girls#rpg"], //Vortella's-Dressup games.playtropolis.com/vortellas-dress-up/
10476            ["Q29sb3ItUm9sbC0zRA==", "NjN2YWtiMmVocW9mOC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8zODFhdTJxa282bm8wLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat Color-Roll-3D 63vakb2ehqof8.h5games.usercontent.goog/v/381au2qko6no0/?origin=https%3A%2F%2Fgamesnacks.com
10477            ["R2lhbnQtUnVzaA==", "NWRqY2ZqN3ZhaHJpZy5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi80bDd2M3E5anNzcGIwLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat Giant-Rush 5djcfj7vahrig.h5games.usercontent.goog/v/4l7v3q9jsspb0/?origin=https%3A%2F%2Fgamesnacks.com
10478            ["U3Rhci1TdGFycy1BcmVuYQ==", "N3NqMGk4M2xpbm5nZy5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8za2Q2amliYXJuMHQ4Lz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!T-t!webp#portrait"], //cat Star-Stars-Arena 7sj0i83linngg.h5games.usercontent.goog/v/3kd6jibarn0t8/?origin=https%3A%2F%2Fgamesnacks.com
10479            ["VW5jbGUtQWhtZWQ=", "dW5jbGVhaG1lZC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8zMWNhMzgwZi01NDkzLTQzNzEtYjVhYy01YzNjMmRhNjc2MjYvP29yaWdpbj1odHRwcyUzQSUyRiUyRmdhbWVzbmFja3MuY29t", "", 0, "!3pk!d!t!webp#portrait"], //cat Uncle-Ahmed uncleahmed.h5games.usercontent.goog/v/31ca380f-5493-4371-b5ac-5c3c2da67626/?origin=https%3A%2F%2Fgamesnacks.com
10480            ["V2VzdGVybi1TbmlwZXI=", "NG9pbGw3YTlsdGM5Zy5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi81NGhlYTQ0bDZmbTRvLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat Western-Sniper 4oill7a9ltc9g.h5games.usercontent.goog/v/54hea44l6fm4o/?origin=https%3A%2F%2Fgamesnacks.com
10481            ["RWxlbWVudC1CbG9ja3M=", "ZWxlbWVudGJsb2Nrcy5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8zNXVwNXQ3YW8yNGk4Lz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!3pk!d!t!webp#portrait"], //cat Element-Blocks elementblocks.h5games.usercontent.goog/v/35up5t7ao24i8/?origin=https%3A%2F%2Fgamesnacks.com
10482            ["Q29sb3ItRmlsbC0zRA==", "NGtldTRnN3Npb2FzZy5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8yYTU4MWYyMzQzY2JvLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat Color-Fill-3D 4keu4g7sioasg.h5games.usercontent.goog/v/2a581f2343cbo/?origin=https%3A%2F%2Fgamesnacks.com
10483            ["TWV0YWwtR3Vucy1GdXJ5", "MzFtdjk4YXZma3VlOC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8yaHBtMGFrM3ViNGE4Lz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat Metal-Guns-Fury 31mv98avfkue8.h5games.usercontent.goog/v/2hpm0ak3ub4a8/?origin=https%3A%2F%2Fgamesnacks.com
10484            ["T25lLUxpbmU=", "M3B0NHY3YXI4MGt0OC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi82ZG9mNXMwNzUzdWdnLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat One-Line 3pt4v7ar80kt8.h5games.usercontent.goog/v/6dof5s0753ugg/?origin=https%3A%2F%2Fgamesnacks.com
10485            ["QmxvY2tidXN0ZXItUHV6emxl", "MTc3Z2Q4Z2Z0MDRwMC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8wbWQyODhkYjNmdXE4Lz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat Blockbuster-Puzzle 177gd8gft04p0.h5games.usercontent.goog/v/0md288db3fuq8/?origin=https%3A%2F%2Fgamesnacks.com
10486            ["QnJpY2tzLUJyZWFrZXI=", "NWVuanJvcGsxcmVuOC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi82dTVxYXB0NGt0MWo4Lz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat Bricks-Breaker 5enjropk1ren8.h5games.usercontent.goog/v/6u5qapt4kt1j8/?origin=https%3A%2F%2Fgamesnacks.com
10487            ["RW1vamktRnVu", "MGFpanRoMGlzM3Rrby5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8xYzEyNzdocTlrcjk4Lz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat Emoji-Fun 0aijth0is3tko.h5games.usercontent.goog/v/1c1277hq9kr98/?origin=https%3A%2F%2Fgamesnacks.com
10488            ["R29sZi1PcmJpdA==", "N2UwcjI5N3NnazBqMC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8xOTc2YmRhbzRndGYwLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat Golf-Orbit 7e0r297sgk0j0.h5games.usercontent.goog/v/1976bdao4gtf0/?origin=https%3A%2F%2Fgamesnacks.com
10489            ["R2lhbnQtQXR0YWNr", "NTY5OXJpMDJtcjg0MC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8wZG92MnFicG5hZmIwLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat Giant-Attack 5699ri02mr840.h5games.usercontent.goog/v/0dov2qbpnafb0/?origin=https%3A%2F%2Fgamesnacks.com
10490            ["T20tTm9tLVJ1bg==", "b21ub21ydW4uaDVnYW1lcy51c2VyY29udGVudC5nb29nL3YvMzh1ZGo3MHJhdWJsMC8/b3JpZ2luPWh0dHBzJTNBJTJGJTJGZ2FtZXNuYWNrcy5jb20=", "", 0, "!d!t!webp!so#portrait"], //cat Om-Nom-Run omnomrun.h5games.usercontent.goog/v/38udj70raubl0/?origin=https%3A%2F%2Fgamesnacks.com
10491            ["U3BlZWQtTWFzdGVy", "NmUwZWo4Y3Q5aGRqOC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8xZnNzZm1xcXVpbDE4Lz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat Speed-Master 6e0ej8ct9hdj8.h5games.usercontent.goog/v/1fssfmqquil18/?origin=https%3A%2F%2Fgamesnacks.com
10492            ["RWdnLU1ha2Vy", "MzhxYmJmcWdzNTNrby5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi80am40Y3VncTY4ZDg4Lz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat Egg-Maker 38qbbfqgs53ko.h5games.usercontent.goog/v/4jn4cugq68d88/?origin=https%3A%2F%2Fgamesnacks.com
10493            ["RHllLUhhcmQ=", "MGpzajIxcjU0MDBmby5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi83bG45NTJidm1vZm1nLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat Dye-Hard 0jsj21r5400fo.h5games.usercontent.goog/v/7ln952bvmofmg/?origin=https%3A%2F%2Fgamesnacks.com
10494            ["U29saXRhaXJlLUNsYXNzaWM=", "c29saXRhaXJlY2xhc3NpYy5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi83c2J0MjhtcHBxaW04Lz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat Solitaire-Classic solitaireclassic.h5games.usercontent.goog/v/7sbt28mppqim8/?origin=https%3A%2F%2Fgamesnacks.com
10495            ["TWFoam9uZy1Tb2xpdGFpcmU=", "NGVya3M4Mzg1ajllby5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8xZmY0cDRtOGlsbWU4Lz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!2pk!d!T-t!webp#portrait"], //cat Mahjong-Solitaire 4erks8385j9eo.h5games.usercontent.goog/v/1ff4p4m8ilme8/?origin=https%3A%2F%2Fgamesnacks.com
10496            ["V29vZHR1cm5pbmctM0Q=", "MTM4NTUxNDExODYzOTI5MDI4NjIucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Woodturning-3D 13855141186392902862.playables.usercontent.goog/v/assets/index.html //fixed-31-07-2026
10497            ["U2F2ZS1UaGUtUGV0cw==", "MTEwMzE4OTQ0ODIzNTI0NDAyMTUucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Save-The-Pets 11031894482352440215.playables.usercontent.goog/v/assets/index.html //fixed 05-08-2026
10498            ["UGljay1NZS1VcC0zRA==", "MTQzMzQyNTI4NjIxNDMyMjI4OTIucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Pick-Me-Up-3D 14334252862143222892.playables.usercontent.goog/v/assets/index.html //fixed-31-07-2026
10499            ["Q2xlYW4tSG91c2U=", "NTQzMDQyOTc0NDE3NTc1MjAwLnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat Clean-
10499House 543042974417575200.playables.usercontent.goog/v/assets/index.html //fixed-07-09-2026
10500            ["U3VwZXItU3R5bGlzdA==", "MTY2MjA0NzgyMjA0NTExNzA5NjEucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!T-t!webp#portrait"], //cat Super-Stylist 16620478220451170961.playables.usercontent.goog/v/assets/index.html
10501            ["QnVyZ2VyLUxpZmU=", "MzcyNDg2MTYwNzk1NjcwNzU4NS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Burger-Life 3724861607956707585.playables.usercontent.goog/v/assets/index.html //fixed-31-07-202
10502            ["TWFuLVJ1bm5lci0yMDQ4", "OTQxMjE3MjcxNTczNTk2MjA1NC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Man-Runner-2048 9412172715735962054.playables.usercontent.goog/v/assets/index.html
10503            ["QW5pbWFsLUNhcmUtVHljb29u", "ODk5NDQ3NjIwNTI0NzIyNzQ1NS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Animal-Care-Tycoon 8994476205247227455.playables.usercontent.goog/v/assets/index.html
10504            ["RXBpYy1Td29yZC1CYXR0bGU=", "MTA4MzE1ODY3Mzg1ODY1NDE0MjEucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Epic-Sword-Battle 10831586738586541421.playables.usercontent.goog/v/assets/index.html //fixed 04-05-2026
10505            ["UGVyZmVjdC1UaWR5", "MTc0NjYzNjc2NjUxNTk0NzczODAucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Perfect-Tidy 17466367665159477380.playables.usercontent.goog/v/assets/index.html //fixed 04-05-2026
10506            ["QWlycGxhbmUtTWFuYWdlcg==", "NTI5MTEyNTA5NTY3ODI0MDM2Ny5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Airplane-Manager 5291125095678240367.playables.usercontent.goog/v/assets/index.html //fixed 04-05-2026
10507            ["U3Vid2F5LVN1cmZlcnMtWnVyaWNo", "MmRhbnMuY29tL2dmLmh0bWw/YzNwb2IyNW5MalF6T1RrdVkyOXRMelF6T1RsemQyWXZMM1Z3Ykc5aFpGOXpkMll2Wm5Sd016VXZiR2wxZUdsdWVYVXZNakF5TVRBek1qUXZhbW93TVM5cGJtUmxlQzVvZEcxcyxVM1ZpZDJGNUxWTjFjbVpsY25NdFduVnlhV05v", "", 0, "!d!T-t!webp!so#landscape"], //cat //1-POPULATE: Subway-Surfers-Zurich szhong.4399.com/4399swf//upload_swf/ftp35/liuxinyu/20210324/jj01/index.html  |||  2-POPULATE: 2dans.com/gf.html?c3pob25nLjQzOTkuY29tLzQzOTlzd2YvL3VwbG9hZF9zd2YvZnRwMzUvbGl1eGlueXUvMjAyMTAzMjQvamowMS9pbmRleC5odG1s,U3Vid2F5LVN1cmZlcnMtWnVyaWNo and main NNN  |||  3-POPULATE-MAIN-DDD: ...where-shonky-and-possible
10508            ["TWljcm9zb2Z0LUpld2Vs", "Y2RuLnpvbmUubXNuLmNvbS9hc3NldHMvZ2FtZXMvbWljcm9zb2Z0amV3ZWwvYnVpbGRtc24vMjAyNDA3MzFUMjIwODAxX3JlZnNfdGFnc192Mi4yLjFfZWY4NGMxZF9tc24vaW5kZXguaHRtbA==", "", 0, "!d!T-t!webp#landscape"], //cat //Microsoft-Jewel cdn.zone.msn.com/assets/games/microsoftjewel/buildmsn/20240731T220801_refs_tags_v2.2.1_ef84c1d_msn/index.html //lowish-
10509            ["U25haWwtQm9iLTY=", "YXNzZXRzLnRscGcubmwvZ2FtZXMva2lkcy8wLzIxNTAwL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#landscape"], //cat Snail-Bob-6 assets.tlpg.nl/games/kids/0/21500/index.html
10510            ["SnVtcC1Kb3VzdHM=", "d3d3LjJkYW5zLmNvbS9nYW1lcy9qdW1wam91c3RzLw==", "", 0, "!d#landscape#action#combat#2player"], //jump-jousts-new
10511            ["UmVtb3RlLUZ1", "d3d3LjJkYW5zLmNvbS9nYW1lcy9yZW1vdGVmdS8=", "", 0, "!d#landscape#action#combat"], //remote-fu-new
10512            ["TXVsdGlwbGF5ZXItQ2hlc3MtT25saW5l", "NDI0NjQ3NDkyMjY4NjAyMjYwNi5hbGxvd25ldHdvcmtwbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#landscape"], //cat Multiplayer-Chess-Online 4246474922686022606.allownetworkplayables.usercontent.goog/v/assets/index.html  
10513            ["Q29mZmVlLVN0YWNr", "MTQ2NTMwODgwNjg5NzE0NzUzODEucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Coffee-Stack 14653088068971475381.playables.usercontent.goog/v/assets/index.html
10514            ["TWVvdy1DYXB0Y2hh", "Nzk1MDc4MjE2MDAyMTA1MDI2MC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!D-t!t!webp#portrait"], //cat Meow-Captcha 7950782160021050260.playables.usercontent.goog/v/assets/index.htm
10515            ["SWRsZS1Db25zdHJ1Y3Rpb24tM0Q=", "MTYwNTg4ODYwMzk0MzA3MDEyOTAucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Idle-Construction-3D 16058886039430701290.playables.usercontent.goog/v/assets/index.html
10516            ["QmVuLTEwLU9tbml0cml4LVNoYWRvdw==", "MmRhbnMuY29tL2dhbWVzL2JlbjEwb21uaXRyaXhzaGFkb3cv", "", 0, "!d!T-t#portrait"], //cat Ben-10-Omnitrix-Shadow 2dans.com/games/ben10omnitrixshadow/
10517            ["QmVuLTEwLVNhbXVyYWktV2Fycmlvcg==", "MmRhbnMuY29tL2dhbWVzL2JlbjEwc2FtdXJhaXdhcnJpb3Iv", "", 0, "!d!t!webp#portrait"], //cat Ben-10-Samurai-Warrior 2dans.com/games/ben10samuraiwarrior/
10518            ["RHJpbGxpb25haXJl", "MmRhbnMuY29tL2dhbWVzL2RyaWxsaW9uYWlyZS8=", "", 0, "!d!T-t#portrait"], //cat Drillionaire 2dans.com/games/drillionaire/
10519            ["WW91LUNhbi1CZS1BLUNoZWYtQmFyYmll", "MmRhbnMuY29tL2dhbWVzL3lvdWNhbmJlYWNoZWZiYXJiaWUv", "", 0, "!d!T-t!webp!so#portrait"], //cat You-Can-Be-A-Chef-Barbie 2dans.com/games/youcanbeachefbarbie/
10520            ["VGlkeS1Db2lucy0zRA==", "ODAyODU3NjkwNDQ1Mjc1ODg1LnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat Tidy-Coins-3D 802857690445275885.playables.usercontent.goog/v/assets/index.html //fixed-04-05-2026
10521            ["RGVhZGx5LUNhdGNo", "MTQxMDE5MDI0MjcyODU4NDUyNDYucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Deadly-Catch 14101902427285845246.playables.usercontent.goog/v/assets/index.html //fixed-31-07-2026
10522            ["Q29va2luZ2RvbQ==", "MTE5NDc1NDMzMDkyNjI1MDk2NTcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Cookingdom 11947543309262509657.playables.usercontent.goog/v/assets/index.html //fixed-04-05-2026
10523            ["QmxvY2stUGFydHktMw==", "MmRhbnMuY29tL2dhbWVzL2Jsb2NrcGFydHkzLw==", "", 0, "!d!t!webp!so#portrait"], //cat Block-Party-3 2dans.com/games/blockparty3/
10524            ["TXktVGlueS1NYXJrZXQ=", "NHN1a3JyOGN1b3B0Zy5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8yMXZzNnBlN2JqaXNvLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat My-Tiny-Market 4sukrr8cuoptg.h5games.usercontent.goog/v/21vs6pe7bjiso/?origin=https%3A%2F%2Fgamesnacks.com
10525            ["UGFydHktTWl4", "MmRhbnMuY29tL2dhbWVzL3BhcnR5bWl4Lw==", "", 0, "!3pk!d!T-t!webp#portrait"], //cat Party-Mix 2dans.com/games/partymix/
10526            ["RmFzaGlvbi1QcmluY2Vzcw==", "MTYxMTc2MTUwNzk2ODc5ODc2MzQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Fashion-Princess 16117615079687987634.playables.usercontent.goog/v/assets/index.html //fixed-04-05-2026
10527            ["QXJyb3dzLVNsaWRlLVB1enpsZQ==", "MzI0Nzk1ODM2NTIzNTgxMTgwLnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat Arrows-Slide-Puzzle 324795836523581180.playables.usercontent.goog/v/assets/index.html //fixed-07-09-2026
10528            ["Q3ViZXMtMjA0OC1pbw==", "MTAwNDQ5MTY3OTI4Mjc0ODM0MzUucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!T-t!webp#portrait"], //cat Cubes-2048-io 10044916792827483435.playables.usercontent.goog/v/assets/index.html //fixed-16-07-2026
10529            ["Q3Jvc3MtU3RpdGNoLU1hc3RlcnM=", "MTgxMzQwMjI5NjkwODAzNDgxMzcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Cross-Stitch-Masters 18134022969080348137.playables.usercontent.goog/v/assets/index.html //fixed-29-08-2026
10530            ["U3BydW5raS1CZWF0", "MzYxMjMxNTYyMzY4MTY3NjM5MC5wbGF5YWJsZXMudXNlcmNvbn
10530RlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Sprunki-Beat 3612315623681676390.playables.usercontent.goog/v/assets/index.html //fixed-16-06-2026
10531            ["THVkby1TdGFy", "MTA0Mjc4NDUwMDQzNTc0OTcwMzUucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!T-t!webp#portrait"], //cat Ludo-Star 10427845004357497035.playables.usercontent.goog/v/assets/index.html //fixed-06-06-2026
10532            ["QnViYmxlLVBvcC1EcmVhbS1Kb3VybmV5", "MTA0MDQwNDI0NTg4MTc0NTM4NjIucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Bubble-Pop-Dream-Journey 10404042458817453862.playables.usercontent.goog/v/assets/index.html //fixed-13-05-2026
10533            ["R3VtYmFsbC1QYWludGJhbGw=", "d3d3LjJkYW5zLmNvbS9nYW1lcy9ndW1iYWxscGFpbnRiYWxsLw==", "", 0, "!d!T-c!webp#landscape"], //cat Gumball-Paintball www.2dans.com/games/gumballpaintball/
10534            ["UHJvdGVjdG9ycy1PZi1UaGUtUHJpZGVsYW5kcw==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9wcm90ZWN0b3Jzb2Z0aGVwcmlkZWxhbmRzLw==", "", 0, "!d!T-t!so!webp#landscape"], //cat Protectors-Of-The-Pridelands www.2dans.com/games/protectorsofthepridelands/
10535            ["U3dpbmctSW50by1BY3Rpb24=", "d3d3LjJkYW5zLmNvbS9nYW1lcy9zd2luZ2ludG9hY3Rpb24v", "", 0, "!d!t!webp#landscape"], //cat Swing-Into-Action www.2dans.com/games/swingintoaction/
10536            ["TWFoam9uZy1Qb3A=", "MTE4MzcyMjYyOTA4MjcwOTE4MTgucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Mahjong-Pop 11837226290827091818.playables.usercontent.goog/v/assets/index.html
10537            ["VG9wLVNwZWVkLTNE", "dG9wc3BlZWQzZC5naXRsYWIuaW8vZmlsZS8=", "", 0, "!d!T-c#landscape#x3d#action#motorsport#rpg"], //top-speed-3d topspeed3d.gitlab.io/file/
10538            ["UGxvbmt5", "Y2RuLnZpZXRkcC5jb20vZmlsZS92aWV0ZHAtZ2FtZXMvZ2FtZXMvdDUyMDI1L3Bsb25reS9pbmRleC5odG1s", "", 0, "!d!t!webp#landscape"], //plonky cdn.vietdp.com/file/vietdp-games/games/t52025/plonky/index.html
10539            ["Q3JhenktQ2Fycw==", "YWJpbmJpbnMuZ2l0aHViLmlvL2E0L2NyYXp5LWNhcnMv", "", 0, "!3pk!d!T-c#landscape#x3d#action#motorsport#multiplayer"], //crazy-cars abinbins.github.io/a4/crazy-cars/
10540            //===
10541            ["VGFsbC1NYW4tUnVuLU9yaWdpbnM=", "MmRhbnMuY29tL2dmLmh0bWw/Wnk1cFozSnZkWFJyWVM1eWRTOW5ZVzFsY3k4eU15OXJRWGRsUTNWUGJIZ3pXVWxPTkV0UUwzSjJka0ZUVFdsTkx6YzVPREJqTWpObVltSmhaVFJoWmpZNE5URmxNREV3TlRKbVkyVXpZMk5sTHc9PSxWR0ZzYkMxTllXNHRVblZ1", "", 154, "!3pk!d!T-t#portrait#x3d#running"], //tall-man-run-origins //igroutka
10542            ["U3dpbmdv", "MmRhbnMuY29tL2dmLmh0bWw/Wnk1cFozSnZkWFJyWVM1eWRTOW5ZVzFsY3k4eE5qUXZNbkJRVFVGRE4ySTJWbXBWVWpWT1NpOHlMM04zYVc1bmJ5OD0sVTNkcGJtZHY=", "Zy5pZ3JvdXRrYS5ydS9nYW1lcy8xNjQvMnBQTUFDN2I2VmpVUjVOSi8yL3N3aW5nby9pbWFnZXMvc2hhZG93cy1zaGVldDAucG5n", 8, "!3pk!d!t#landscape#action#cute"], //swingo //igroutka
10543            ["RHVvLVN1cnZpdmFs", "MmRhbnMuY29tL2dmLmh0bWw/YlM1cFozSnZkWFJyWVM1eWRTOW5ZVzFsY3pFdk1ESXZaSFZ2TFhOMWNuWnBkbUZzTHc9PSxSSFZ2TFZOMWNuWnBkbUZz", "", 0, "!3pk!d!t#landscape#multiplayer#platform"], //duo-survival //igroutka
10544            ["RHVvLVN1cnZpdmFsLTI=", "MmRhbnMuY29tL2dmLmh0bWw/YlM1cFozSnZkWFJyWVM1eWRTOW5ZVzFsY3pFdk1ESXZaSFZ2TFhOMWNuWnBkbUZzTFRJdixSSFZ2TFZOMWNuWnBkbUZzTFRJPQ==", "", 0, "!3pk!d!t#landscape#multiplayer#platform"], //duo-survival-2 //igroutka
10545            ["RHVvLVN1cnZpdmFsLTM=", "MmRhbnMuY29tL2dmLmh0bWw/YlM1cFozSnZkWFJyWVM1eWRTOW5ZVzFsY3pFdk1ESXZaSFZ2TFhOMWNuWnBkbUZzTFRNdixSSFZ2TFZOMWNuWnBkbUZzTFRNPQ==", "", 0, "!3pk!d!t#landscape#multiplayer#platform"], //duo-survival-3 //igroutka
10546            ["QXBwbGUtS25pZ2h0LU1pbmktRHVuZ2VvbnM=", "MmRhbnMuY29tL2dmLmh0bWw/Wnk1cFozSnZkWFJyWVM1eWRTOW5ZVzFsY3k4eE5qUXZaRTQ0UlZJelFucFpZMjFZY1hjeU1TOHlMMkZ3Y0d4bFgydHVhV2RvZEY5dGFXNXBYMlIxYm1kbGIyNXpMdz09LFFYQndiR1V0UzI1cFoyaDBMVTFwYm1rdFJIVnVaMlZ2Ym5NPQ==", "", 0, "!3pk!d!T-c#landscape#combat#platform#retro"], //apple-knight-mini-dungeons //igroutka
10547            ["TW92aW5nLVRydWNr", "MmRhbnMuY29tL2dmLmh0bWw/Wnk1cFozSnZkWFJyWVM1eWRTOW5ZVzFsY3k4eE5qUXZTbWRJVTNab1pFSk5ZVFZ3WmpSWFdpOXRiM1pwYm1kZmRISjFZMnN2LFRXOTJhVzVuTFZSeWRXTnI=", "", 0, "!3pk!d!t#landscape#jobs#motorsport"], //moving-truck //igroutka
10548            ["U25vdy1UYWxl", "MmRhbnMuY29tL2dmLmh0bWw/Wnk1cFozSnZkWFJyWVM1eWRTOW5ZVzFsY3k4eE5qUXZOM2RNVms5YWFsRXpiM0JRT0hGaVZTOXpibTkzWDNSaGJHVXYsVTI1dmR5MVVZV3hs", "", 0, "!p!3pk!d!T-c#landscape#action#platform#retro"], //snow-tale //igroutka
10549            ["TWltZWxldA==", "MmRhbnMuY29tL2dmLmh0bWw/Wnk1cFozSnZkWFJyWVM1eWRTOW5ZVzFsY3k4eE5qUXZUakZ1WTBJMmJ6QnhiRU5WVDNRNWRpOHlMMjFwYldWc1pYUXYsVFdsdFpXeGxkQT09", "", 0, "!p!3pk!d!T-c#landscape#action#platform#retro"], //mimelet //igroutka
10550            ["RGVtb2xpdGlvbi1EZXJieS1DcmFzaC1SYWNpbmc=", "MmRhbnMuY29tL2dmLmh0bWw/YlM1cFozSnZkWFJyWVM1eWRTOXVhUzgwTmpZdmFXZHlZUzFuYjI1cmFTMXVZUzEyZVhwb2FYWmhibWxsTVM4PSxSR1Z0YjJ4cGRHbHZiaTFFWlhKaWVTMURjbUZ6YUMxU1lXTnBibWM9", "", 0, "!3pk!d!T-c#landscape#x3d#action#combat#motorsport"], //demolition-derby-crash-racing //igroutka
10551            //===
10552            ["TG9zdC1UcmVhc3VyZXM=", "MmRhbnMuY29tL2dhbWVzL2xvc3R0cmVhc3VyZXMv", "", 0, "!d!t!so!webp#landscape"], //cat Lost-Treasures 2dans.com/games/losttreasures/
10553            ["TGVtbWluZ3MtTGF1bmNo", "MmRhbnMuY29tL2dhbWVzL2xlbW1pbmdzbGF1bmNoLw==", "", 0, "!d!t!webp#landscape"], //cat Lemmings-Launch 2dans.com/games/lemmingslaunch/
10554            ["RXBpYy1NdXRhbnQtTWlzc2lvbnM=", "MmRhbnMuY29tL2dhbWVzL2VwaWNtdXRhbnRtaXNzaW9ucy8=", "", 0, "!d!T-t!so!webp#landscape"], //cat Epic-Mutant-Missions 2dans.com/games/epicmutantmissions/
10555            ["Q2F2ZS1IdW50", "MmRhbnMuY29tL2dhbWVzL2NhdmVodW50Lw==", "", 0, "!en!d!T-t!webp#landscape"], //cat Cave-Hunt 2dans.com/games/cavehunt/ //d:0.38
10556            ["QmFza2V0YmFsbC1TdGFycy0y", "MmRhbnMuY29tL2dhbWVzL2Jhc2tldGJhbGxzdGFyczIv", "", 0, "!d!t!webp#landscape"], //cat Basketball-Stars-2 2dans.com/games/basketballstars2/
10557            ["Q3VyaW91cy1DYW1wb3V0", "MmRhbnMuY29tL2dhbWVzL2N1cmlvdXNjYW1wb3V0Lw==", "", 0, "!en!d!t!webp#portrait"], //cat Curious-Campout 2dans.com/games/curiouscampout/
10558            ["V2F0ZXItUGFyaw==", "MmRhbnMuY29tL2dhbWVzL3dhdGVycGFyay8=", "", 0, "!d!T-t!webp#landscape"], //cat Water-Park 2dans.com/games/waterpark/
10559            ["TWlja2V5LUFuZC1NaW5uaWUncy1Vbml2ZXJzZQ==", "MmRhbnMuY29tL2dhbWVzL21pY2tleWFuZG1pbm5pZXN1bml2ZXJzZS8=", "", 0, "!d!t!so!webp#landscape"], //cat Mickey-And-Minnie's-Universe 2dans.com/games/mickeyandminniesuniverse/
10560            ["UGlua2F0YXN0aWMtU3RpY2tlcnM=", "MmRhbnMuY29tL2dhbWVzL3BpbmthdGFzdGljc3RpY2tlcnMv", "", 0, "!en!d!t!webp#landscape"], //cat Pinkatastic-Stickers 2dans.com/games/pinkatasticstickers/ //lcs
10561            ["TmF0dXJlLUNhdCdzLUFkdmVudHVyZQ==", "MmRhbnMuY29tL2dhbWVzL25hdHVyZWNhdHNhZHZlbnR1cmUv", "", 0, "!en!d!T-t!webp#landscape"], //cat Nature-Cat's-Adventure 2dans.com/games/naturecatsadventure/ //d:0.39
10562            //
10563            ["SmVsbHktUnVu", "Nzc0MTE1MTgwMDY2NzcxODgzMC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Jelly-Run 7741151800667718830.playables.usercontent.goog/v/assets/index.html
10564            ["RGlub3NhdXJzLU1lcmdlLU1hc3Rlcg==", "NjQwMzU1MzMzOTA2MDY2NjgzNy5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Dinosaurs-Merge-Master 6403553339060666837.playables.usercontent.goog/v/assets/index.html
10565            ["RXZvbHV0aW9uLVNpbXVsYXRvcg==", "NTMwMjI5MDA4MzcyOTM1MDIxMC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Evolution-Simulator 5302290083729350210.playables.usercontent.goog/v/assets/index.html //fixed-31-07-2026
10566            ["RHJhdy1CcmlkZ2UtQnJhaW4tR2FtZQ==", "MTE4OTgwNTM0OTU0NDYxMDg2MDIucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Draw-Bridge-Brain-Game 11898053495446108602.playables.usercontent.goog/v/assets/index.html
10567            ["RG9udXQtUGxhY2U=", "MjEwOTU1NDQxMjk1MzYzMTk5OC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Donut-Place 2109554412953631998.playables.usercontent.goog/v/assets/index.html //fixed-31-07-2026
10568            //
10569            ["VG9wLVNwZWVkLVJhY2luZy0zRA==", "MmRhbnMuY29tL2dmLmh0bWw/WjJGdFpYTnZibXhwYm1VNE5pNW5hWFJvZFdJdWFXOHZkRzl3TFhOd1pXVmtMWEpoWTJsdVp5MHpaQzg9LFZHOXdMVk53WldWa0xWSmhZMmx1WnkwelJBPT0=", "", 0, "!d!T-c!webp#landscape"], //cat Top-Speed-Racing-3D gamesonline86.github.io/top-speed-racing-3d/
10570            ["TGV2ZWwtRGV2aWw=", "MmRhbnMuY29tL2dmLmh0bWw/WjJGdFpYTXVZWEpqWVdSeWIyMWxMbU52YlM5c1pYWmxiQzFrWlhacGJDOHhMMmx1WkdWNExtaDBiV3c9LFRHVjJaV3d0UkdWMmFXdz0=", "", 0, "!d!t!webp#landscape#2player"], //cat Level-Devil games.arcadrome.com/level-devil/1/index.html
10571            ["Qmx1bWdpLUJvdW5jZQ==", "MmRhbnMuY29tL2dmLmh0bWw/WjJGdFpYTXVZWEpqWVdSeWIyMWxMbU52YlM5aWJIVnRaMmt0WW05MWJtTmxMekl2YVc1a1pYZ3VhSFJ0YkE9PSxRbXgxYldkcExVSnZkVzVqWlE9PQ==", "", 0, "!d!t!webp#landscape"], //cat Blumgi-Bounce games.arcadrome.com/blumgi-bounce/2/index.html
10572            ["Q291bnQtQ29udHJvbC1MZWdlbmRz", "MmRhbnMuY29tL2dmLmh0bWw/WjJGdFpXTmtiaTV2Ym13dmNISnZlSGt2WWpVME9HWTVZVFl0TXpGa09DMDBaREk0TFdFMllqQXRZekJsWVRsbFpqTTFPRGRqTG5CdmEya3RaMlJ1TG1OdmJTODVOamhtWVRCaU5TMHhPVEpqTFRRMk5XTXRZamxoWmkwNFpHTXhZVFJsTVRsaE9HSXZhVzVrWlhndWFIUnRiQT09LFEyOTFiblF0UTI5dWRISnZiQzFNWldkbGJtUno=", "", 0, "!d!t!webp#landscape"], //cat Count-Control-Legends gamecdn.onl/proxy/b548f9a6-31d8-4d28-a6b0-c0ea9ef3587c.poki-gdn.com/968fa0b5-192c-465c-b9af-8dc1a4e19a8b/index.html
10573            ["VGlueS1GaXNoaW5n", "MmRhbnMuY29tL2dmLmh0bWw/WjJGdFpYTXVZWEpqWVdSeWIyMWxMbU52YlM5MGFXNTVMV1pwYzJocGJtY3ZNUzlwYm1SbGVDNW9kRzFzLFZHbHVlUzFHYVhOb2FXNW4=", "", 0, "!d!t!webp#landscape"], //cat Tiny-Fishing games.arcadrome.com/tiny-fishing/1/index.html
10574            ["U25hcC1TdHlsZS1EcmVzc3Vw", "MmRhbnMuY29tL2dmLmh0bWw/Wnk1cFozSnZkWFJyWVM1eWRTOW5ZVzFsY3k4eE1qWXpMMUJLYkRoWWRIVklhek5YVDJSUllrd3ZNRGN4WldGbE9EWXRNV0U0WkMwMFpUbGtMVGc1WkdNdFpHWXdPRFF5TVdRMU1tWmlMMmx1WkdWNExtaDBiV3c9LFUyNWhjQzFUZEhsc1pTMUVjbVZ6YzNWdw==", "", 0, "!d!t!webp#landscape"], //cat Snap-Style-Dressup g.igroutka.ru/games/1263/PJl8XtuHk3WOdQbL/071eae86-1a8d-4e9d-89dc-df08421d52fb/index.html
10575            //
10576            ["UmFnZG9sbC1SYWNpbmc=", "NTk5MjczMTcxNjg3ODc1MjU1LnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!T-t!webp#portrait"], //cat Ragdoll-Racing 599273171687875255.playables.usercontent.goog/v/assets/index.html //fixed-03-06-2026
10577            ["Q29va2luZy1SYWdl", "MTUxNTgwOTg2NzIxNjcyMzM2OTgucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!T-t!webp#portrait"], //cat Cooking-Rage 15158098672167233698.playables.usercontent.goog/v/assets/index.html
10578            ["UmFnZG9sbC1Ecm9w", "a2RhdGExLmNvbS81MDAwLzIwMjUvcmFnZG9sbC1kcm9wLw==", "", 0, "!d!t!webp#portrait"], //cat Ragdoll-Drop kdata1.com/5000/2025/ragdoll-drop/
10579            //
10580            ["UmFjZS1SdXNoLTNE", "MTAzNTU4NzUyNjUwMzg2ODQ2MTQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Race-Rush-3D 1035587
105805265038684614.playables.usercontent.goog/v/assets/index.html
10581            ["VW5zY3Jldy1Ecm9w", "MjQwMDg3ODQ5MDQ4NDkzNTkucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Unscrew-Drop 24008784904849359.playables.usercontent.goog/v/assets/index.html //fixed-29-05-2026
10582            ["U3Vydml2YWwtSXNsYW5kLTNE", "NDU0Njg5MjQ2OTEzMzQwODUyNi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Survival-Island-3D 4546892469133408526.playables.usercontent.goog/v/assets/index.html
10583            ["SGFwcHktRnJ1aXQtR2FtZQ==", "NTQ1Mzc5NDAwNzY0NTMwNTIzNi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Happy-Fruit-Game 5453794007645305236.playables.usercontent.goog/v/assets/index.html
10584            ["U2xpbWUtU3RvcmU=", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy9yb3NpZXMtcnVsZXMtcm9zaWVzLXNob3AvNGFlNTVlZWY1NDhkZTg4NjE0N2NiMjgwODZkZWUzNjY1NjkzODA2Mi9yZWxlYXNlL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat Slime-Store springroll-tc.pbskids.org/rosies-rules-rosies-shop/4ae55eef548de886147cb28086dee36656938062/release/index.html
10585
10586            ["QmlraW5pLUJvdHRvbS1NeXN0ZXJpZXMtU2VhcmNo", "d3d3LjJkYW5zLmNvbS9nYW1lcy9iaWtpbmlib3R0b21teXN0ZXJpZXNzZWFyY2gv", "", 0, "!d!t!webp#landscape"], //cat Bikini-Bottom-Mysteries-Search www.2dans.com/games/bikinibottommysteriessearch/
10587            ["RWxlbmEtT2YtQXZhbG9y", "d3d3LjJkYW5zLmNvbS9nYW1lcy9lbGVuYW9mYXZhbG9yLw==", "", 0, "!d!t!webp#landscape"], //cat Elena-Of-Avalor www.2dans.com/games/elenaofavalor/
10588            ["U2NyaWJibGVzLUFuZC1JbmstRmFyLUFuZC1Bd2F5", "d3d3LjJkYW5zLmNvbS9nYW1lcy9zY3JpYmJsZXNhbmRpbmtmYXJhbmRhd2F5Lw==", "", 0, "!en!d!T-t!webp#landscape"], //cat Scribbles-And-Ink-Far-And-Away www.2dans.com/games/scribblesandinkfarandaway/
10589            ["U2NyaWJibGVzLUFuZC1JbmstSW4tQW5kLU91dA==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9zY3JpYmJsZXNhbmRpbmtpbmFuZG91dC8=", "", 0, "!en!d!T-t!webp#landscape"], //cat Scribbles-And-Ink-In-And-Out www.2dans.com/games/scribblesandinkinandout/
10590            //
10591            ["Um9zaWUncy1GbG9wLUZpZXN0YQ==", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy9iNGE1MDRlNy0wMWM4LTRkZjctYjNkZi1jNDVmZTI2MDMwZmMvMjUwNzY2NDhlODhmNmUxM2Q2OWE1N2Y5MmUyMTJjZGI3NjI4NWJhNy9yZWxlYXNlL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat Rosie's-Flop-Fiesta springroll-tc.pbskids.org/b4a504e7-01c8-4df7-b3df-c45fe26030fc/25076648e88f6e13d69a57f92e212cdb76285ba7/release/index.html
10592            ["Q29sb3JyaWZpYy1BcnQtU2hvdw==", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy9waW5rYWxpY2lvdXMtZHJhd2luZy9iMzg3NTJmNzZhMzA4NGNjM2I4NGM5MjZhY2Y5YzAyOGY4NTcwNDkwL3JlbGVhc2UvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Colorrific-Art-Show springroll-tc.pbskids.org/pinkalicious-drawing/b38752f76a3084cc3b84c926acf9c028f8570490/release/index.html
10593            ["RnVuLVJhY2UtM0Q=", "NWQ1YWFrcTNuaGFqOC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8yZWF1MDBkaHJxcnJvLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat Fun-Race-3D 5d5aakq3nhaj8.h5games.usercontent.goog/v/2eau00dhrqrro/?origin=https%3A%2F%2Fgamesnacks.com
10594            ["SGlkZGVuLU9iamVjdC1TdHJlZXQtT2YtU2VjcmV0cw==", "ODQ5OTk4NjU4NTYwNDEwMjQ1LnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat Hidden-Object-Street-Of-Secrets 849998658560410245.playables.usercontent.goog/v/assets/index.html
10595            ["UGFwZXItRG9sbC1EaWFyeQ==", "MzM1NjQyMzcyMTY3NDk3MjE1NC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!T-t!webp#portrait"], //cat Paper-Doll-Diary 3356423721674972154.playables.usercontent.goog/v/assets/index.html //fixed-31-07-2026
10596            ["TXItUmFjZXItU3R1bnQtTWFuaWE=", "MTYxOTQyNDk0MzE2OTE0MjgyNjgucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Mr-Racer-Stunt-Mania 16194249431691428268.playables.usercontent.goog/v/assets/index.html //fixed-31-07-2026
10597            ["TWFrZXVwLUJlYXV0eQ==", "MTA5NzU2NzI3MjMzMzM0NDA5NzMucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Makeup-Beauty 10975672723333440973.playables.usercontent.goog/v/assets/index.html //fixed-31-07-2026
10598            ["SmlncGljLVNvbGl0YWlyZQ==", "MTE5MDcyNDcwNTQwNzA3OTQyNC5wbGF5YWJsZXMudXNlcmNvbn
10598RlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Jigpic-Solitaire 1190724705407079424.playables.usercontent.goog/v/assets/index.html //fixed-31-07-2026
10599            //
10600            ["QmxhY2t0b3AtUG9saWNlLUNoYXNl", "MmRhbnMuY29tL2dmLmh0bWw/Wnk1cFozSnZkWFJyWVM1eWRTOW5ZVzFsY3k4eE1UQTRMMUZhV0dOVmJFcG5kMnN5YlRseWVHNHZaRGhsTWpJeFlXWXRNemN3WlMwME5URm1MVGxtTkRVdFlUYzBOemd6TVRrek5tVTBMMmx1WkdWNExtaDBiV3c9LFFteGhZMnQwYjNBdFVHOXNhV05sTFVOb1lYTmw=", "", 0, "!2pk!d!t!webp#landscape"], //cat Blacktop-Police-Chase g.igroutka.ru/games/1108/QZXcUlJgwk2m9rxn/d8e221af-370e-451f-9f45-a747831936e4/index.html
10601            //["QmxhY2t0b3AtUG9saWNlLUNoYXNl", "Zy5pZ3JvdXRrYS5ydS9nYW1lcy8xMTA4L1FaWGNVbEpnd2sybTlyeG4vZDhlMjIxYWYtMzcwZS00NTFmLTlmNDUtYTc0NzgzMTkzNmU0L2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat Blacktop-Police-Chase g.igroutka.ru/games/1108/QZXcUlJgwk2m9rxn/d8e221af-370e-451f-9f45-a747831936e4/index.html
10602            ["SWNlLUNyZWFtLUluYw==", "NWxsZDQ5M3ZtMmMyby5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8xa2RtOGFjZmY4MmZnLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat Ice-Cream-Inc 5lld493vm2c2o.h5games.usercontent.goog/v/1kdm8acff82fg/?origin=https%3A%2F%2Fgamesnacks.com
10603            ["U25ha2UtRXNjYXBlLVB1enpsZQ==", "MzQ5OTgyNDE5ODAzNDg5MzAxOS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Snake-Escape-Puzzle 3499824198034893019.playables.usercontent.goog/v/assets/index.html
10604            ["VEItV29ybGQtVW5sb2NrZWQ=", "d3d3LjJkYW5zLmNvbS9nYW1lcy90YndvcmxkdW5sb2NrZWQv", "", 0, "!d!t!so!webp#landscape"], //TB-World-Unlocked www.2dans.com/games/tbworldunlocked/
10605            ["RXh0cmVtZS1DYXItRHJpdmluZw==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9leHRyZW1lY2FyZHJpdmluZy8=", "", 0, "!d!t!webp#landscape"], //cat Extreme-Car-Driving 18146665754862882092.playables.usercontent.goog/v/assets/index.html //fixed-11-08-2026
10606            ["UGV0LU1lLU1hemU=", "MzMwNDgzNDg0NjQzOTA2NDM0OS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#landscape"], //cat Pet-Me-Maze 3304834846439064349.playables.usercontent.goog/v/assets/index.html
10607            ["QmF0dGxlLUhvbGU=", "NjEwMjUyODA5OTgwODE0NTUzNy5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#landscape"], //cat Battle-Hole 6102528099808145537.playables.usercontent.goog/v/assets/index.html
10608            ["V29ybGQtV2FyLUNhbXAtQ29tcGFueQ==", "MTM5NjExOTQzMDM2OTU3Mjg4MDYucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#landscape"], //cat World-War-Camp-Company 13961194303695728806.playables.usercontent.goog/v/assets/index.html //fixed-31-07-2026
10609            //["TlNSLVN0cmVldC1DYXItUmFjaW5n", "Nzc4OTYzNDU1NTQ4NzY5NjIwNy5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#landscape"], //cat NSR-Street-Car-Racing 7789634555487696207.playables.usercontent.goog/v/assets/index.html //fixed-20-09-2026 //currently-crashes-if-you-try-to-watch-ads
10610            //
10611            ["VG9jYS1MaWZl", "d3d3LjJkYW5zLmNvbS9nYW1lcy90b2NhbGlmZS8=", "", 0, "!d!t!so!webp#landscape"], //cat Toca-Life www.2dans.com/games/tocalife/
10612            ///////
10613            ///////
10614            ///////
10615            //desktop-fails...
10616            ["RHluYW1vbnMtMg==", "d3d3Lm1pbmlqdWVnb3NncmF0aXMuY29tL3YzL2dhbWVzL2dhbWVzL3Byb2QvMjE1NjE3L3YxL2luZGV4Lmh0bWw=", "", 0, "!D-t!t#portrait#animals#combat#strategy"], //LESSER-dynamons www.minijuegosgratis.com/v3/games/games/prod/215617/v1/index.html
10617            ["Q3VwLVBvbmc=", "MnZvcGNiOTBndWFsOC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi80djllczkzc2ljcDAwLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!D-t!t!webp#portrait"], //cat Cup-Pong 2vopcb90gual8.h5games.usercontent.goog/v/4v9es93sicp00/?origin=https%3A%2F%2Fgamesnacks.com //t:0.48
10618            ["RHJpdmUtTWFk", "dHJhZmZpY2phbTNkLmdpdGh1Yi5pby9HYW1lLTEvZHJpdmUtbWFkLw==", "", 0, "!D-t!t!webp#landscape"], //cat Drive-Mad trafficjam3d.github.io/Game-1/drive-mad/ //t:0.47
10619            ["R29pbmctQmFsbHM=", "MjM4MjM4OTQ5Mjg4NjM1OTkzNi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!D-t!t!webp#portrait"], //cat Going-Balls 2382389492886359936.playables.usercontent.goog/v/assets/index.html //t:0.40
10620            ["QmFza2V0LUJhdHRsZQ==", "NTAyOTIxMTAyMTc3Njg5MjQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMv", "", 0, "!D-t!t!webp#portrait#ball#sport"], //basket-battle //t:0.37
10621            ["UG9ja2V0LUJhdHRsZS1Sb3lhbGU=", "cG9ja2V0YmF0dGxlcm95YWxlLmg1Z2FtZXMudXNlcmNvbnRlbnQuZ29vZy92LzFuOXFmdjRjcGRpZTgvP29yaWdpbj1odHRwcyUzQSUyRiUyRmdhbWVzbmFja3MuY29t", "", 0, "!D-t!t!webp#portrait"], //cat Pocket-Battle-Royale pocketbattleroyale.h5games.usercontent.goog/v/1n9qfv4cpdie8/?origin=https%3A%2F%2Fgamesnacks.com //t:0.34
10622            ["Um9sbC1Uby1UaGUtUmVzY3Vl", "d3d3LjJkYW5zLmNvbS9nYW1lcy9yb2xsdG90aGVyZXNjdWUv", "", 0, "!D-t!t!webp#landscape"], //cat Roll-To-The-Rescue www.2dans.com/games/rolltotherescue/
10623            ["U2xpbWUtU2ltdWxhdG9y", "MjMxODA3NzMwOTk2MTE2NjMyNC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!D-t!t!webp#portrait"], //cat Slime-Simulator 2318077309961166324.playables.usercontent.goog/v/assets/index.html //fixed-29-08-2026
10624            ["QWNlLUhvdGVs", "YXBwLTIyMjAzNi5nYW1lcy5zMy55YW5kZXgubmV0LzIyMjAzNi9jMXkxNDVkbmpuczhhOGRrZDZiNHViamk1amk1bnJ0al9icm90bGkvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Ace-Hotel app-222036.games.s3.yandex.net/222036/c1y145dnjns8a8dkd6b4ubji5ji5nrtj_brotli/index.html
10625            ["U2luZ2xlLUxpbmUtRHJhd2luZy1QdXp6bGU=", "NjQ4MTMyMDI2MTQ0MjgzMDU0OC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!D-t!t!webp#portrait"], //cat Single-Line-Drawing-Puzzle 6481320261442830548.playables.usercontent.goog/v/assets/index.html
10626            ["UGlua2FtYWdpbmUtRmFzaGlvbg==", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy9mYXNoaW9uLWdhbWUvZjhkMjUxODk4YmRlNWVjYThlZDZjZWFlMmMxMGIzYjg5NjE4NjdhZS9yZWxlYXNlL2luZGV4Lmh0bWw=", "", 0, "!D-t!t!webp#portrait"], //cat Pinkamagine-Fashion springroll-tc.pbskids.org/fashion-game/f8d251898bde5eca8ed6ceae2c10b3b8961867ae/release/index.html
10627            ["R29vZHMtVGlkeS1QdXp6bGU=", "NTk2MTIzOTE3OTY2Njg3OTk0NS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!D-t!t!webp#portrait"], //cat Goods-Tidy-Puzzle 5961239179666879945.playables.usercontent.goog/v/assets/index.html
10628            ["RW5kbGVzcy1UcnVjaw==", "MTVkcm9qMnU0MTJ0Zy5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8zOTk3dXRoM29hZTAwLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!D-t!t!webp#portrait"], //cat Endless-Truck 15droj2u412tg.h5games.usercontent.goog/v/3997uth3oae00/?origin=https%3A%2F%2Fgamesnacks.com
10629            ["RWF0LVRoZS1NYWxs", "MTc0NzI2ODA0NDM0ODEzMTI0NjcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Eat-The-Mall 17472680443481312467.playables.usercontent.goog/v/assets/index.html //fixed-31-07-2026
10630            ["QWlyLUhvY2tleS1Hbw==", "MTEyMjEyMjAyMzI1NjY3MTU2NzYucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Air-Hockey-Go 11221220232566715676.playables.usercontent.goog/v/assets/index.html
10631            ["U2hlZXAtUmVzY3Vl", "MTYwNjA3MjE2MTQzNjk2NTY0MTkucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Sheep-Rescue 16060721614369656419.playables.usercontent.goog/v/assets/index.html
10632            ["RmluZC1UaGUtR2hvc3Q=", "OTY1NzMxMzU1NTQxOTAyOTAwNy5wbGF5YWJsZXMudXNlcmNvbn
10632RlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!D-t!t!webp#portrait"], //cat Find-The-Ghost 9657313555419029007.playables.usercontent.goog/v/assets/index.html
10633            ["Q3JvY3dvcmQ=", "MTQ2ODI4NjYyNzI3ODM0MDQ3OTEucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Crocword 14682866272783404791.playables.usercontent.goog/v/assets/index.html
10634            ["TXktRHJlYW0tUGl6emE=", "MTAzODY0MDM2MjQ2OTg1ODI0NS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!D-t!t!webp#portrait"], //cat My-Dream-Pizza 1038640362469858245.playables.usercontent.goog/v/assets/index.html
10635            ["TG92ZS1SdXNo", "MTcyNjA3NjUzODYyOTczMDAyMTIucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Love-Rush 17260765386297300212.playables.usercontent.goog/v/assets/index.html
10636            ["TWFrZW92ZXItU3R5bGlzdA==", "MTY1MTQ1NDUyODk2MDQyNjgwNTcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Makeover-Stylist 16514545289604268057.playables.usercontent.goog/v/assets/index.html
10637            ["Q2hlZXNlLVN3aXBl", "MmRhbnMuY29tL2dhbWVzL2NoZWVzZXN3aXBlLw==", "", 0, "!D-t!t#landscape"], //cat Cheese-Swipe 2dans.com/games/cheeseswipe/
10638            ["U21hc2gtU3BlZWQ=", "MTIwOTU2MjQzOTU1NTU1ODE4MDIucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Smash-Speed 12095624395555581802.playables.usercontent.goog/v/assets/index.html
10639            ["R29vZC1Nb29kLUZvb2Q=", "MTQ4MzAwNjc2MDA4NzQzOTc3MTEucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Good-Mood-Food 14830067600874397711.playables.usercontent.goog/v/assets/index.html
10640            ["QVotTWVyZ2U=", "MTU3MjE4MzA4NDIwOTc1MTA1NTQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat AZ-Merge 15721830842097510554.playables.usercontent.goog/v/assets/index.html
10641            ["Q2F0ZWdvcnktSHVudA==", "MzQ5NjUwOTMxMTgwNjk2OTM3MS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!D-t!t!webp#portrait"], //cat Category-Hunt 3496509311806969371.playables.usercontent.goog/v/assets/index.html
10642            ["Smlnc29ydA==", "MTQ2MjY4NTk3MTk1NTAxNDAyMjMucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Jigsort 14626859719550140223.playables.usercontent.goog/v/assets/index.html
10643            ["U3VwZXItU3dpbmc=", "OTI0OTI0OTk1OTIzNDE4MDczOC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!D-t!t!webp#portrait"], //cat Super-Swing 9249249959234180738.playables.usercontent.goog/v/assets/index.html
10644            ["UGFyay1NYXN0ZXI=", "MTM4MTA0NTEyMjg1MjU4Njg4MTMucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Park-Master 13810451228525868813.playables.usercontent.goog/v/assets/index.html
10645            ["Mi1QbGF5ZXItQmF0dGxl", "MTQzNzAxNDc3MTEwMjM0MTM3NTkucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait#2player"], //cat 2-Player-Battle 14370147711023413759.playables.usercontent.goog/v/assets/index.html //fixed-31-07-2026
10646            ["RHJhdy1MaW5lLU1pbmktR2FtZXM=", "ODQxOTA4NTc3NjA4Mjk0MzIxMi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!D-t!t!webp#portrait"], //cat Draw-Line-Mini-Games 8419085776082943212.playables.usercontent.goog/v/assets/index.html
10647            ["V29uZGVyLUdvYWw=", "MTA4ODcxNTU0ODY2NDUyODI4MjcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Wonder-Goal 10887155486645282827.playables.usercontent.goog/v/assets/index.html
10648            ["VGlkeS1RdWVzdA==", "MTMzNjE0NTczNTg5ODI2NTE5NDcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Tidy-Quest 13361457358982651947.playables.usercontent.goog/v/assets/index.html
10649            ["Q29sb3ItQmxvY2stSmFt", "MTI5MzQwODI2MDA3MDQ5NjU2MjcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Color-Block-Jam 12934082600704965627.playables.usercontent.goog/v/assets/index.html
10650            ["TWFoam9uZy1TbGlkZS1BbmQtTWVyZ2U=", "NTMzNTUwMjM3NjY3NjYxODkxNC5wbGF5YWJsZXMudXNlcmNvbn
10650RlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!D-t!t!webp#portrait"], //cat Mahjong-Slide-And-Merge 5335502376676618914.playables.usercontent.goog/v/assets/index.html
10651            ["TWVyZ2UtVGVhbS1UYWN0aWNz", "NjUxNTc4MTk5ODcxMTgyNTE5NS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!D-t!t!webp#portrait"], //cat Merge-Team-Tactics 6515781998711825195.playables.usercontent.goog/v/assets/index.html //fixed-31-07-2026
10652            ["Rmxvdy1CbGFzdA==", "MTI4MDkzMTY1NzQ4NjUyMjEzOTYucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Flow-Blast 12809316574865221396.playables.usercontent.goog/v/assets/index.html //fixed-23-05-2026
10653            ["QW5ncnktR3Jhbi1SdW4=", "NTM2NTkwMDk4NTgwNjM2MzQyNC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!D-t!t!webp#portrait"], //cat Angry-Gran-Run 5365900985806363424.playables.usercontent.goog/v/assets/index.html
10654            ["Q2Fycy12cy1UcmFpbnMtUmFjZS1EYXk=", "MTUzMDAyNDYxMDE2Njg4OTQ2MDIucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Cars-vs-Trains-Race-Day 15300246101668894602.playables.usercontent.goog/v/assets/index.html //fixed-25-08-2026
10655            ["QW5pbWFscy12cy1ab21iaWVz", "MTIzMjIyOTczMzMzMzk5NDYzOTgucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Animals-vs-Zombies 12322297333339946398.playables.usercontent.goog/v/assets/index.html
10656            ["QmF0dGxlLVJhY2luZy1TdGFycw==", "MTA0Nzg1NzM3NDIxNTQwNDEzOTMucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Battle-Racing-Stars 10478573742154041393.playables.usercontent.goog/v/assets/index.html
10657            ["TnVtYmVycy1SdW4=", "MTI1MzAxNzQxNjIxMDc4OTQwMTEucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Numbers-Run 12530174162107894011.playables.usercontent.goog/v/assets/index.html
10658            ["VGlsZS1Db25uZWN0", "MTI1ODMyMDQ0MTAxNTE4MTQ1MzQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Tile-Connect 12583204410151814534.playables.usercontent.goog/v/assets/index.html
10659            ["U3RhY2stVHJhaWw=", "MTU4MDQ5NjcyOTczNjIxNzc1NzcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!D-t!t!webp#portrait"], //cat Stack-Trail 15804967297362177577.playables.usercontent.goog/v/assets/index.html
10660            ["QW50LUNyYWZ0", "OTMxMDM5MjEwNzA2ODM2NjkwOC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!D-t!t!webp#portrait"], //cat Ant-Craft 9310392107068366908.playables.usercontent.goog/v/assets/index.html
10661            ["RHJvcC1Gb3VyLUV2b2x2ZWQ=", "Mzk3OTI5OTE3NzU4NDM0MTM0MS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!D-t!t!webp#portrait"], //cat Drop-Four-Evolved 3979299177584341341.playables.usercontent.goog/v/assets/index.html //fixed-07-09-2026
10662            ["SmVsbHktRHJvcC1NZXJnZS1BbmQtU2VsbA==", "NTYwNDU3OTc0MTY2MjAyNDkwNy5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!D-t!t!webp#portrait"], //cat Jelly-Drop-Merge-And-Sell 5604579741662024907.playables.usercontent.goog/v/assets/index.html
10663            ///////
10664            ///////
10665            ///////
10666            ["R3ltLUJvc3M=", "Njg0NDQ5ODQ1MjY2NTkwNzY0Ni5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Gym-Boss 6844498452665907646.playables.usercontent.goog/v/assets/index.html //fixed-29-08-2026
10667            ["R3JhYi1DcmF6eQ==", "MjI0MzY0ODMzNzE3MjQwMjM1OC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Grab-Crazy 2243648337172402358.playables.usercontent.goog/v/assets/index.html
10668            ["RnJ1aXQtQ29ubmVjdC0z", "MTE5ODc2NTc1MTczMzUyMTI0NjUucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!T-t!webp#portrait"], //cat Fruit-Connect-3 11987657517335212465.playables.usercontent.goog/v/assets/index.html
10669            ["U25vdy1UcmFpbi1PZHlzc2V5", "MTI1ODYzMjM5MTkxODczMTY3MzAucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Snow-Train-Odyssey 12586323919187316730.playables.usercontent.goog/v/assets/index.html
10670            ["Q29sb3NzYXRyb24=", "MzI4NzYwOTA5OTg3MjE2OTQ1OS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Colossatron 3287609099872169459.playables.usercontent.goog/v/assets/index.html
10671            ["VHJvcGljYWwtV29yZC1TZWFyY2g=", "MTIxNjM5NTU3NTUxNDMzODMzMTcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Tropical-Word-Search 12163955755143383317.playables.usercontent.goog/v/assets/index.html
10672            ["TWVyZ2UtRHJhZ29ucw==", "MTIyNjExMDgwNzUwODQzNDEwOTQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Merge-Dragons 12261108075084341094.playables.usercontent.goog/v/assets/index.html
10673            ["RmFzaGlvbi1RdWVlbg==", "MTMzMzkwNjUwODU5ODE1NzMyNC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Fashion-Queen 1333906508598157324.playables.usercontent.goog/v/assets/index.html
10674            ["SGFpci1TYWxvbg==", "OTMyNTU1MDIxNTY2NzAxMjUxOC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Hair-Salon 9325550215667012518.playables.usercontent.goog/v/assets/index.html
10675            ["VHJpY2tzaG90LVBvb2w=", "OTc1NTQ5ODYyODYzMzQ5ODMxMi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Trickshot-Pool 9755498628633498312.playables.usercontent.goog/v/assets/index.html
10676            ["Q296eS1Db2xvcmluZw==", "Mjk5NDI1MTc0NjE2NzU3NzE2Ny5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Cozy-Coloring 2994251746167577167.playables.usercontent.goog/v/assets/index.html
10677            ["U3BhY2UtV2F2ZXM=", "MTI1MzM2OTA3NDI2ODMxMjM4MTQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Space-Waves 12533690742683123814.playables.usercontent.goog/v/assets/index.html
10678            ["U3F1aWQtSGl0", "OTYxODM1NzQ5MzEwOTkxODE2Ni5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!T-t!webp#portrait"], //cat Squid-Hit 9618357493109918166.playables.usercontent.goog/v/assets/index.html
10679            ["VGlkeS1VcA==", "Nzg3NDkzOTM4MDMwMTUwNDAyMi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Tidy-Up 7874939380301504022.playables.usercontent.goog/v/assets/index.html
10680            ["RHJhdy1UaGUtUmVzdA==", "NDc2ODgxNDAzMjAwMDk3NTI5My5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!T-t!webp#portrait"], //cat Draw-The-Rest 4768814032000975293.playables.usercontent.goog/v/assets/index.html
10681            ["UmFnZG9sbC1DYXItUmFjZQ==", "NTQzMzEwNDU2OTYzMzI5MzM1MC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Ragdoll-Car-Race 5433104569633293350.playables.usercontent.goog/v/assets/index.html
10682            ["VGlsZXMtSW4tSG9sZQ==", "OTcxMjY2OTM2NzQ1NDI2MjczNS5wbGF5YWJsZXMudXNlcmNvbn
10682RlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!T-t!webp#portrait"], //cat Tiles-In-Hole 9712669367454262735.playables.usercontent.goog/v/assets/index.html
10683            ["VW5zY3Jldy1JdA==", "MTQ5NzU1MjMzNzU5MDY3NjQyODMucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!T-t!webp#portrait"], //cat Unscrew-It 14975523375906764283.playables.usercontent.goog/v/assets/index.html
10684            ["SGFpci1UYXR0b28=", "NzMyMjMyNjUxNjE1MjgyOTI3OC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Hair-Tattoo 7322326516152829278.playables.usercontent.goog/v/assets/index.html
10685            ["Q29pbi1NZXJnZS1NYWNoaW5l", "OTY0NjQwODUyNzQwMDMxNTg4Ny5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Coin-Merge-Machine 9646408527400315887.playables.usercontent.goog/v/assets/index.html
10686            ["UHJpc29uLUJyZWFr", "MTQ0MjE4MTY1NTM1MzgzMDgyNjIucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Prison-Break 14421816553538308262.playables.usercontent.goog/v/assets/index.html
10687            ["RGlub3NhdXItU2hpZnRpbmctUnVu", "MTYwNzc5NzY5MTM1NDAyMDEyMjcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Dinosaur-Shifting-Run 16077976913540201227.playables.usercontent.goog/v/assets/index.html //fixed-25-07-2026
10688            ["SGlkZS1UaGUtRG9nZQ==", "NTIyNDA4ODEyNjIzMzA0NTgzNC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Hide-The-Doge 5224088126233045834.playables.usercontent.goog/v/assets/index.html //fixed-11-08-2026
10689            ["UHV6emxlLUJsb2NrLU1hc3Rlcg==", "NzY0OTkwNTI0MTM3MDk4MDg0MS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Puzzle-Block-Master 7649905241370980841.playables.usercontent.goog/v/assets/index.html
10690            ["RG9ncy1Wcy1BbGllbnM=", "MTEzMjkwNDIzNTYwMjg0Mjg0OTUucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Dogs-Vs-Aliens 11329042356028428495.playables.usercontent.goog/v/assets/index.html
10691            ["U3VwZXItTWF0aW5v", "MzgwNjY4MjE5ODc0Njg3NjU4My5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Super-Matino 3806682198746876583.playables.usercontent.goog/v/assets/index.html
10692            ["SGVyby1Wcy1DcmltaW5hbA==", "MTc2NTkxMzk2NzM5NjY2OTUxMTYucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Hero-Vs-Criminal 17659139673966695116.playables.usercontent.goog/v/assets/index.html
10693            ["U2NyZXctUHV6emxl", "NjAxMzAwNjM5NjMyNjQwODM3Ni5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Screw-Puzzle 6013006396326408376.playables.usercontent.goog/v/assets/index.html
10694            ["TWVtZS1Mb25nLUxlZ3M=", "OTI0OTMzNDY1NzI3ODI2MDE2MC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Meme-Long-Legs 9249334657278260160.playables.usercontent.goog/v/assets/index.html
10695            ["QVNNUi1NaW5pLUdhbWVz", "MzkyODcxNjY2MzI1MzE3NTkxOC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat ASMR-Mini-Games 3928716663253175918.playables.usercontent.goog/v/assets/index.html
10696            ["SGFtc3Rlci1Fc2NhcGU=", "MTIwMzcyNjA2MDM4NzE1ODkwMDYucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Hamster-Escape 12037260603871589006.playables.usercontent.goog/v/assets/index.html //fixed-21-08-2026
10697            ["OC1CYWxsLVBvb2wtQ2x1Yg==", "NjUyOTc0NTYyMjU4NzI0MTQ4Mi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat 8-Ball-Pool-Club 6529745622587241482.playables.usercontent.goog/v/assets/index.html //fixed-21-08-2026
10698            ["TWVyZ2UtTGFnb29u", "MTc1NDQ5ODk4Nzc0MTUxOTM4MTgucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!T-t!webp#portrait"], //cat Merge-Lagoon 17544989877415193818.playables.usercontent.goog/v/assets/index.html
10699            ["RmllbGQtTWFzdGVy", "NTcyOTk1MTM1NjMyNDM4Nzk3Ny5wbGF5YWJsZXMudXNlcmNvbn
10699RlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Field-Master 5729951356324387977.playables.usercontent.goog/v/assets/index.html //fixed-25-07-2026
10700            //
10701            ["UmFjaW5nLVN0YXJz", "MmRhbnMuY29tL2dhbWVzL3JhY2luZ3N0YXJzLw==", "", 0, "!d!T-t!webp#landscape"], //cat Racing-Stars 2dans.com/games/racingstars/
10702            ["R3VtYmFsbC1Xb3Jkc2VhcmNo", "MmRhbnMuY29tL2dhbWVzL2d1bWJhbGx3b3Jkc2VhcmNoLw==", "", 0, "!d!t!webp#landscape"], //cat Gumball-Wordsearch 2dans.com/games/gumballwordsearch/
10703            ["VGVtcGxlLVJ1bi0y", "MmRhbnMuY29tL2dhbWVzL3RlbXBsZXJ1bjIv", "", 0, "!d!t!webp#landscape"], //cat Temple-Run-2 2dans.com/games/templerun2/
10704            ["VHJvcGh5LUNoYWxsZW5nZQ==", "MmRhbnMuY29tL2dhbWVzL3Ryb3BoeWNoYWxsZW5nZS8=", "", 0, "!d!T-c#landscape"], //cat Trophy-Challenge 2dans.com/games/trophychallenge/
10705            ["V2lsZC1LcmF0dHMtQ2F0cy1BbmQtRG9ncw==", "MmRhbnMuY29tL2dhbWVzL3dpbGRrcmF0dHNjYXRzYW5kZG9ncy8=", "", 0, "!d!t!webp#landscape"], //cat Wild-Kratts-Cats-And-Dogs 2dans.com/games/wildkrattscatsanddogs/
10706            ["WmFwcGluZy1SdW4=", "MmRhbnMuY29tL2dhbWVzL3phcHBpbmdydW4v", "", 0, "!d!T-t!webp#landscape"], //cat Zapping-Run 2dans.com/games/zappingrun/
10707            //
10708            ["VGFuay1TdGFycw==", "MTI1MjA3NjM1NjI4OTU3NTM5MzAucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Tank-Stars 12520763562895753930.playables.usercontent.goog/v/assets/index.html    
10709            ["Q3JhZnQtQW5kLUJhdHRsZQ==", "MTYxNjA2MTI5NDc5MzAxNjk0MzgucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Craft-And-Battle 16160612947930169438.playables.usercontent.goog/v/assets/index.html
10710            ["RGVhZGx5LURlc2NlbnQ=", "NDE2NjQyOTE0ODEzMzY3MTM5OS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Deadly-Descent 4166429148133671399.playables.usercontent.goog/v/assets/index.html
10711            ["RHJpdmUtWm9uZQ==", "MjU1NTM1NjIyMDAxMTYxMTQ0MS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!T-t!webp#portrait"], //cat Drive-Zone 2555356220011611441.playables.usercontent.goog/v/assets/index.html
10712            ["M0QtU2FuZGJveC1CYXR0bGUtT2YtVGhlLUtpbmdkb21z", "MzQ4NDU0NDcwOTk1OTI1MTUyNS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat 3D-Sandbox-Battle-Of-The-Kingdoms 3484544709959251525.playables.usercontent.goog/v/assets/index.html
10713            ["UmVsYXhpbmctTWluaS1HYW1lcw==", "MTE5ODg5NzU4MTM3MDU2NjM5NzEucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Relaxing-Mini-Games 11988975813705663971.playables.usercontent.goog/v/assets/index.html //fixed-21-08-2026
10714            ["RGVzc2VydC1NYWtlcg==", "MTE2MzQ5MzY5ODM4NTU3MDgxNTUucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Dessert-Maker 11634936983855708155.playables.usercontent.goog/v/assets/index.html
10715            ["Q296eS1Mb29tLVlhcm4tU29ydA==", "MTM3NDE0MTQ4NzM1MjExMDk0NDIucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Cozy-Loom-Yarn-Sort 13741414873521109442.playables.usercontent.goog/v/assets/index.html
10716            ["Smlnc2F3LUJsb2Nrcw==", "NDY3MzE1NzE3MzQ2NDY0NjkzOC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Jigsaw-Blocks 4673157173464646938.playables.usercontent.goog/v/assets/index.html
10717            ["UGx1Zy1IZWFk", "NDUxNTU0NDA0MjMyNzY1OTM4NC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Plug-Head 4515544042327659384.playables.usercontent.goog/v/assets/index.html //fixed-07-09-2026
10718            ["VHJpY2t5LUNoYWxsZW5nZXM=", "MjUxMzMzMDMxMDI2NDgwNzU2Ny5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Tricky-Challenges 2513330310264807567.playables.usercontent.goog/v/assets/index.html
10719            ["RHJhdy1BY3Rpb24=", "NTg2NTM4MzM0MzMwNzU3MzEyMi5wbGF5YWJsZXMudXNlcmNvbn
10719RlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Draw-Action 5865383343307573122.playables.usercontent.goog/v/assets/index.html
10720            ["SmVsbHktVHViZS1SdW4tMjA0OA==", "ODk4MTE0ODk2MzA2OTIwOTg1LnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat Jelly-Tube-Run-2048 898114896306920985.playables.usercontent.goog/v/assets/index.html //fixed-07-09-2026
10721            ["Q3JhenktRmx5aW5nLUNhcg==", "NTMwOTgyNzc4NDc5MjU3NjUxOS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Crazy-Flying-Car 5309827784792576519.playables.usercontent.goog/v/assets/index.html
10722            ["Q3JhenktQ2FydA==", "NzQzNDUxNDE1OTUxMzg1MjI4LnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat Crazy-Cart 743451415951385228.playables.usercontent.goog/v/assets/index.html
10723            ["QnVpbGQtWW91ci1EcmVhbS1DYXI=", "MTAwMTI1MTI1MDQ5NDAzODczNTkucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!T-t!webp#portrait"], //cat Build-Your-Dream-Car 10012512504940387359.playables.usercontent.goog/v/assets/index.html
10724            ["SG9tZS1SdXNoLURyYXctVG8tSG9tZQ==", "MTQ3OTIwNzMyOTkyMjQ3NzY1NzAucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Home-Rush-Draw-To-Home 14792073299224776570.playables.usercontent.goog/v/assets/index.html
10725            ["RG9nZS1SZXNjdWU=", "NTg4OTkzNTE5NTEwNDY3NTE2LnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat Doge-Rescue 588993519510467516.playables.usercontent.goog/v/assets/index.html
10726            ["Vm9sbGV5LUJlYW5z", "MTczMzI2OTMzMTYyMzczNjIwMDkucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Volley-Beans 17332693316237362009.playables.usercontent.goog/v/assets/index.html
10727            ["SHlwZXItV2F2ZS1DaGFsbGVuZ2U=", "NTA1MzUzMTMwMjE1ODc3NjM5Ni5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Hyper-Wave-Challenge 5053531302158776396.playables.usercontent.goog/v/assets/index.html
10728            ["R2FzLVN0YXRpb24tSnVua3lhcmQtVHljb29u", "NDEwOTY2MjExNDg2MTA2MzcxNC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Gas-Station-Junkyard-Tycoon 4109662114861063714.playables.usercontent.goog/v/assets/index.html //fixed-28-09-2026
10729            ["Wm9tYm90cm9uLVJlYm9vdA==", "d3d3LjJkYW5zLmNvbS9nYW1lcy96b21ib3Ryb25yZWJvb3Qv", "", 0, "!d!T-t!webp#portrait"], //cat Zombotron-Reboot html-classic.itch.zone/html/13200376/index.html
10730            //["UG9seXRyYWNr", "aHRtbC1jbGFzc2ljLml0Y2guem9uZS9odG1sLzE3NzU0OTU0L2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat Polytrack html-classic.itch.zone/html/17754954/index.html
10731            ["QS1Eb2cncy1MaWZl", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy9hLWRvZ3MtbGlmZS8yZTdmMzg4MzIzMWYwZWZkYmNlYjY1NWMzY2RiNGRjNTQwY2NkZGM4L3JlbGVhc2UvaW5kZXguaHRtbA==", "", 0, "!en!d!t!webp#portrait"], //cat A-Dog's-Life springroll-tc.pbskids.org/a-dogs-life/2e7f3883231f0efdbceb655c3cdb4dc540ccddc8/release/index.html
10732            ["UmFjaW5nLVJhcGlkcw==", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy9yYWNpbmctcmFwaWRzL2IwNzFkOTRkZmMyYTc2MTNjYTY5MzI1NTBmZTViOTI1MmE3NzdlYmYvcmVsZWFzZS9pbmRleC5odG1s", "", 0, "!en!d!T-t!webp#portrait"], //cat Racing-Rapids springroll-tc.pbskids.org/racing-rapids/b071d94dfc2a7613ca6932550fe5b9252a777ebf/release/index.html
10733            ["TmF0dXJlLVJvYWQtVHJpcA==", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy9yb2FkLXRyaXAvZmE3MWY3NjRhN2VlNzM2ZGZhMzViOWYyZjJhYmEyYWEzODlhZTdjMC9yZWxlYXNlL2luZGV4Lmh0bWw=", "", 0, "!en!d!t!webp#portrait"], //cat Nature-Road-Trip springroll-tc.pbskids.org/road-trip/fa71f764a7ee736dfa35b9f2f2aba2aa389ae7c0/release/index.html
10734            ["RGluby1EYW5jZS1QYXJ0eQ==", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy81ZWIxNmRhZS1hMzcwLTQxZmEtOTY5Zi1lZTJiYTYwYmNjMDYvODg1NzE3ZjNhNDAzNjQ2ZTA1NTcwYWQxNDUzYWUxYzBkYTA4NDQxZS9yZWxlYXNlL2luZGV4Lmh0bWw=", "", 0, "!en!d!t!webp#portrait"], //cat Dino-Dance-Party springroll-tc.pbskids.org/5eb16dae-a370-41fa-969f-ee2ba60bcc06/885717f3a403646e05570ad1453ae1c0da08441e/release/index.html
10735            ["RnJveW8tU3RhbmQ=", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy9mcm95by85ZjBjMWU3OGU3ZTJkNWYxYzYwYjVlOTk3YTY3YzFjZWE2NjM3ZDg5L3JlbGVhc2UvaW5kZXguaHRtbA==", "", 0, "!en!d!t!webp#portrait"], //cat Froyo-Stand springroll-tc.pbskids.org/froyo/9f0c1e78e7e2d5f1c60b5e997a67c1cea6637d89/release/index.html
10736            ["QXJ0LVBhbHM=", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy9hcnQtcGFscy9lNjg4ZmUxZjI2MTlhMGU2NjJmMGI5NWM2NTc3ZjM0NDAwMThmNjQxL3JlbGVhc2UvaW5kZXguaHRtbA==", "", 0, "!en!d!t!webp#portrait"], //cat Art-Pals springroll-tc.pbskids.org/art-pals/e688fe1f2619a0e662f0b95c6577f3440018f641/release/index.html
10737            ["S2FyYW9rZS1OaWdodA==", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy9jMmMwODQxMy01OGU3LTQ5ZjUtOTYwZS05MDQ0NzViYzU2ZDgvMDg2YmQzOWI1YTUzOGVjNzgyMTg3YzQzN2M3YTU4ZWU4YTNjMmU0OS9yZWxlYXNlL2luZGV4Lmh0bWw=", "", 0, "!en!d!t!webp#portrait"], //cat Karaoke-Night springroll-tc.pbskids.org/c2c08413-58e7-49f5-960e-904475bc56d8/086bd39b5a538ec782187c437c7a58ee8a3c2e49/release/index.html
10738            ["Q2FyLUNyYXNoLVRlc3QtQk1H", "MTMyNzEwNzY4MjMyODg5NzQ2MDAucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Car-Crash-Test-BMG 13271076823288974600.playables.usercontent.goog/v/assets/index.html
10739            ["RGluby1TdXJ2aXZhbA==", "NjY2MDE0MzczNzc2NDgwMTA2MC5wbGF5YWJsZXMudXNlcmNvbn
10739RlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Dino-Survival 6660143737764801060.playables.usercontent.goog/v/assets/index.html
10740            ["RW1vamktQXJjaGVy", "MTQ1NjM2NTkzNTE5NDM3MjE5NDUucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Emoji-Archer 14563659351943721945.playables.usercontent.goog/v/assets/index.html
10741            ["RmluZC1UaGUtRnJvZw==", "MjkxODcwNDkxMzM0MjU0MzMwOC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!T-t!webp#portrait"], //cat Find-The-Frog 2918704913342543308.playables.usercontent.goog/v/assets/index.html
10742            ["UmFjaW5nLUxpbWl0cw==", "MTI3Mjg2NTA4Mjk2NTUwOTc0OC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Racing-Limits 1272865082965509748.playables.usercontent.goog/v/assets/index.html
10743            ["Qk1HLUNhci1EZXN0cnVjdGlvbg==", "MTUwNzMxNTkzNjI5NDA0NjA4ODMucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat BMG-Car-Destruction 15073159362940460883.playables.usercontent.goog/v/assets/index.html
10744            ["RHJlc3MtVXAtM0Q=", "MjAxNzgzODQ0MzY3ODMzNzkwNS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Dress-Up-3D 2017838443678337905.playables.usercontent.goog/v/assets/index.html //fixed-20-09-2026
10745            ["SnVyYXNzaWMtUGFyay1JZGxl", "Njc0ODk4MDYwODQ4NDM2NDQwOC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Jurassic-Park-Idle 6748980608484364408.playables.usercontent.goog/v/assets/index.html
10746            ["QmlnLUJvb20tQnVpbGRpbmctU21hc2g=", "NjQ0OTc0ODg4NDM5NjY2NzE3LnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat Big-Boom-Building-Smash 644974888439666717.playables.usercontent.goog/v/assets/index.html
10747            ["R2FuZ3N0YS1Jc2xhbmQ=", "MTE3NTIzMzc4MzkwNzc4NzM1NzkucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Gangsta-Island 11752337839077873579.playables.usercontent.goog/v/assets/index.html
10748            ["SGV4YS1NYXN0ZXI=", "MTU4OTk1ODkwMzk1NzExMzgwMzEucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Hexa-Master 15899589039571138031.playables.usercontent.goog/v/assets/index.html //fixed-07-09-2026
10749            ["TWVyZ2UtQS1NYW5zaW9u", "NzYzNjMxNzI4NDIxMTYwMTA2Ni5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Merge-A-Mansion 7636317284211601066.playables.usercontent.goog/v/assets/index.html
10750            ["U2F2ZS1UaGUtRmlzaA==", "MTEzMTc0NjU5Mjk1MjAzMjE0MjYucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Save-The-Fish 11317465929520321426.playables.usercontent.goog/v/assets/index.html
10751            ["VGFwLUdhbGxlcnk=", "NDI5NzQ2Mzg3ODg0MDAxMzQ1NS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Tap-Gallery 4297463878840013455.playables.usercontent.goog/v/assets/index.html //fixed-20-09-2026
10752            ["VHJpY2t5LVR3aXN0", "NTk3NzAxMjg4ODkwNzQ0MjI2Ny5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Tricky-Twist 5977012888907442267.playables.usercontent.goog/v/assets/index.html
10753            ["UG90aW9uLU1lcmdl", "MzUyNDAyMzQ4MDc2MzI3NjM4MC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Potion-Merge 3524023480763276380.playables.usercontent.goog/v/assets/index.html //fixed-20-09-2026
10754            ["TGF5ZXItTWFuLTNE", "NjA4NDkxNzY2MjgzOTc1MTIxNy5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Layer-Man-3D 6084917662839751217.playables.usercontent.goog/v/assets/index.html
10755            ["Q3JhenktS2ljaw==", "MTc4Mzk4ODE0NjU3NjkyNTk2NjMucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Crazy-Kick 17839881465769259663.playables.usercontent.goog/v/assets/index.html
10756            ["Smlnc2F3LUNhcmRzLURhaWx5LVB1enpsZXM=", "NDcwNjM4MjU1Mjc4NjEyNzU2My5wbGF5YWJsZXMudXNlcmNvbn
10756RlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Jigsaw-Cards-Daily-Puzzles 4706382552786127563.playables.usercontent.goog/v/assets/index.html //fixed-07-09-2026
10757            ["SGVhZC1CYWxsLTI=", "NjE3MTMyNTUyNzc0MjM4NzE3Ny5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Head-Ball-2 6171325527742387177.playables.usercontent.goog/v/assets/index.html //fixed-20-09-2026
10758            ["Q3JhZnQtQ2FyLURJWQ==", "MTU3MjY4NzE2ODA3OTIwNjQ2MjAucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Craft-Car-DIY 15726871680792064620.playables.usercontent.goog/v/assets/index.html
10759            ["V29yay1Jcy1Tby1GdW4=", "NDMwMjUwMTc3MzA5ODA3NzU5Ny5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Work-Is-So-Fun 4302501773098077597.playables.usercontent.goog/v/assets/index.html
10760            ["Q29uc3RydWN0aW9uLVRydWNr", "NTcyNjM0NTQ4ODIxNjE0ODI0My5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Construction-Truck 5726345488216148243.playables.usercontent.goog/v/assets/index.html
10761            ["R2Vhci1GaWdodA==", "MTE2NDIyOTg0NjA2OTIwNTg2MzgucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Gear-Fight 11642298460692058638.playables.usercontent.goog/v/assets/index.html
10762            ["U3VwZXJjYXItTGVnZW5kcw==", "OTY5ODk1OTg3MjcxNjUzNTUyMS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Supercar-Legends 9698959872716535521.playables.usercontent.goog/v/assets/index.html
10763            ["Q2Fubm9uLUJhc2tldA==", "MTQ0OTEyNDg4NzYwMDM5OTExMTYucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Cannon-Basket 14491248876003991116.playables.usercontent.goog/v/assets/index.html
10764            ["RGFzaC1BbmQtU2xhc2g=", "Mjg1MjU2MDc5NTQ3MTg2MzU2OC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Dash-And-Slash 2852560795471863568.playables.usercontent.goog/v/assets/index.html
10765            ["V2F0ZXItSmFt", "MTA3MjUxOTE4MTc0MTY0OTQyMzQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Water-Jam 10725191817416494234.playables.usercontent.goog/v/assets/index.html
10766            ["U29jY2VyLU9yYml0", "MTMxNzk4MDg1Njc3MzgxNzI3MzQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Soccer-Orbit 13179808567738172734.playables.usercontent.goog/v/assets/index.html
10767            ["U2hhcGUtRHJvcA==", "MTExMjU2NDAzOTIyODA4ODE3Mi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Shape-Drop 1112564039228088172.playables.usercontent.goog/v/assets/index.html
10768            ["VGlueS1DYXJz", "NjczODU0NDU2NDYzNjAwODA1Ni5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Tiny-Cars 6738544564636008056.playables.usercontent.goog/v/assets/index.html
10769            ["R2FzLVN0YXRpb24tU2ltdWxhdG9y", "Nzc4NzcyOTMzODI1MTg1NTg5Mi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Gas-Station-Simulator 7787729338251855892.playables.usercontent.goog/v/assets/index.html
10770            ["QmF0dGxlLU9mLVdvcm1z", "MTQwNDYxNTc4ODY2MTM3ODUxMTMucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Battle-Of-Worms 14046157886613785113.playables.usercontent.goog/v/assets/index.html
10771            ["UmFpbHJvYWQtTWFzdGVy", "MzYyMjI2MjU3OTg2NzYwNDc3MC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Railroad-Master 3622262579867604770.playables.usercontent.goog/v/assets/index.html
10772            ["TXktQXJteS1CYXNl", "MjE3MzY5NTY3ODgzOTc2MTc1My5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat My-Army-Base 2173695678839761753.playables.usercontent.goog/v/assets/index.html //fixed-20-09-2026
10773            ["UmVkLUhpZGUtQmFsbA==", "NzI5NDc0MDkwMTMyNjA0MDEwNi5wbGF5YWJsZXMudXNlcmNvbn
10773RlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Red-Hide-Ball 7294740901326040106.playables.usercontent.goog/v/assets/index.html
10774            ["UGFya2luZy1GdXJ5LTI=", "MjgzNTQxMzUxODM1NzQ5NTY0NS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Parking-Fury-2 2835413518357495645.playables.usercontent.goog/v/assets/index.html
10775            ["VGVubmlzLUxlZ2VuZHM=", "NDI1MzM5Njc2MjQzMTQyNjA1Mi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Tennis-Legends 4253396762431426052.playables.usercontent.goog/v/assets/index.html
10776            ["Um91bmR5LUJsb2Nr", "NTY5NDQ2NzYzODkxNzI4NzQxLnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat Roundy-Block 569446763891728741.playables.usercontent.goog/v/assets/index.html
10777            ["TWFjaGluZS1FYXRlcg==", "ODUxMzI5NzU2OTQyNjI4MzcxOS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Machine-Eater 8513297569426283719.playables.usercontent.goog/v/assets/index.html //fixed-20-09-2026
10778            ["TWFzdGVyLVNjYXZlbmdlcg==", "MTIzNTAxOTYyNTQwMjMxNzQ4MTUucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Master-Scavenger 12350196254023174815.playables.usercontent.goog/v/assets/index.html
10779            ["Q3Jvd24tQW5kLUNhbm5vbg==", "MTY5MDk2MTkxODc4MDMwOTY1MS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Crown-And-Cannon 1690961918780309651.playables.usercontent.goog/v/assets/index.html
10780            ["U3RvbmUtTWFzdGVy", "MzAzNjgzMjM2NDE2MTE0Njc0LnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat Stone-Master 303683236416114674.playables.usercontent.goog/v/assets/index.html
10781            ["TGVhZi1CbG93ZXItU2ltdWxhdG9y", "MTQwNjI2MzY3ODY1OTA0NTQ0NjYucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Leaf-Blower-Simulator 14062636786590454466.playables.usercontent.goog/v/assets/index.html //fixed-20-09-2026
10782            //
10783            ["U2F0aXNmeWluZy1DbGVhbmluZw==", "MTU0NDczNTI2Mzk1NDgwMzg3MTEucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Satisfying-Cleaning 15447352639548038711.playables.usercontent.goog/v/assets/index.html
10784            ["U2FuZGJveC1DaXR5", "MTI0MzI3NTUzMTYyMDM1MDMzNTYucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Sandbox-City 12432755316203503356.playables.usercontent.goog/v/assets/index.html
10785            ["RHJhdy1DcmFzaC1SYWNl", "MjI3MTg5MzIyMzY5NDgxODA3Ni5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Draw-Crash-Race 2271893223694818076.playables.usercontent.goog/v/assets/index.html
10786            ["VHJpY2stWW91ci1CcmFpbi1QdXp6bGU=", "NjI4MTUwNTEyNDEyNTk3NDI3NS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Trick-Your-Brain-Puzzle 6281505124125974275.playables.usercontent.goog/v/assets/index.html
10787            ["SG9sZS1Gb29kcy0zRA==", "MjA3MjQ0MzQwMTA3NDM0MjEwNC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Hole-Foods-3D 2072443401074342104.playables.usercontent.goog/v/assets/index.html
10788            ["Q2FyLURlc3RydWN0aW9uLUtpbmc=", "ODc4OTUyNTAwMjUyNTM1Njc2Ny5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Car-Destruction-King 8789525002525356767.playables.usercontent.goog/v/assets/index.html
10789            ["QXJyb3dzLVBpY3R1cmUtUHV6emxl", "NTIzOTkyMTc5MDc2NDMxMDQ3Ny5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Arrows-Picture-Puzzle 5239921790764310477.playables.usercontent.goog/v/assets/index.html //fixed-28-09-2026
10790            ["Wm9vbG9naWM=", "MTA3NzkzMTkwOTU2NjEyNTA1MjYucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Zoologic 10779319095661250526.playables.usercontent.goog/v/assets/index.html
10791            ["TXktU2hhcmstU2hvdw==", "NTk0NzQ3MTI0Nzg0OTkzNTk4NS5wbGF5YWJsZXMudXNlcmNvbn
10791RlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat My-Shark-Show 5947471247849935985.playables.usercontent.goog/v/assets/index.html
10792            ["UGl6emEtTWFrZXI=", "MTEyNjkxNzgxMjc2ODk4MjgzMTQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Pizza-Maker 11269178127689828314.playables.usercontent.goog/v/assets/index.html
10793            ["TXktUGVyZmVjdC1GYXJt", "MTY1OTAwOTUzNzU0NDU3MjA1Ny5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat My-Perfect-Farm 1659009537544572057.playables.usercontent.goog/v/assets/index.html
10794            ["Qk1HLUNyYXNoLVRlc3Q=", "NzUwNjU0MzEwMjk3MzYzNDY4Ni5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat BMG-Crash-Test 7506543102973634686.playables.usercontent.goog/v/assets/index.html
10795            ["UG9wLVRoZW0=", "MTM1MjYyOTk4NDQ5NDc4NTQ1NjYucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Pop-Them 13526299844947854566.playables.usercontent.goog/v/assets/index.html
10796            ["RGluby1Xb3JsZC0zRA==", "NjMwOTU5Mzg5MjQ1Mjk2OTczMi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Dino-World-3D 6309593892452969732.playables.usercontent.goog/v/assets/index.html
10797            ["QmFza2V0YmFsbC1TdGFycw==", "MTgwNzI4NzI5ODA3MjUzMjYyMTMucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Basketball-Stars 18072872980725326213.playables.usercontent.goog/v/assets/index.html
10798            ["UG9wLVRoZS1CYWxs", "MTU4MDUzMDU5NzkzMjY5NDcwMTUucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Pop-The-Ball 15805305979326947015.playables.usercontent.goog/v/assets/index.html
10799            ["QXJtb3JlZC1Sb2JvdHM=", "ODgwMDg3NjMxMjMxNzU1Mzg4Ni5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Armored-Robots 8800876312317553886.playables.usercontent.goog/v/assets/index.html
10800            ["VGlnZXItVGFuaw==", "MzkzMDg4Mzk4ODA5MzM2NzUxLnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat Tiger-Tank 393088398809336751.playables.usercontent.goog/v/assets/index.html
10801            ["U25vd2JhbGwtUmFjZS0zRA==", "NTk1MDA4NTM4MDM2MzE0NjkxNS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Snowball-Race-3D 5950085380363146915.playables.usercontent.goog/v/assets/index.html
10802            ["TW9uc3RlcnMtTGFi", "MTk3MTk4MTU4NTI5MzQ5MTc1OS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Monsters-Lab 1971981585293491759.playables.usercontent.goog/v/assets/index.html
10803            ["UmFnZG9sbC1SdW5uZXI=", "MzkyMzc3NDQ5NzUxNDU3MjY1MC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Ragdoll-Runner 3923774497514572650.playables.usercontent.goog/v/assets/index.html
10804            ["QnVpbGQtQW4tQXF1YXBhcms=", "MTIyNDM2ODg4NzQwNTE1NzA5MzUucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Build-An-Aquapark 12243688874051570935.playables.usercontent.goog/v/assets/index.html //fixed-28-09-2026
10805            ["QmxvY2t5LURpbm8tQ2l0eS1DcmFzaA==", "MTU1NDcxMzk3NDI1MDk5MDk4MzQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Blocky-Dino-City-Crash 15547139742509909834.playables.usercontent.goog/v/assets/index.html
10806            ["SnVpY2UtTWVyZ2U=", "NjM5NzU5MTUxOTg4MzE1NDk2Ni5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Juice-Merge 6397591519883154966.playables.usercontent.goog/v/assets/index.html
10807            ["U25ha2UtMjA0OA==", "MzkzODcwOTc0ODYxNzU1MTQ4LnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat Snake-2048 393870974861755148.playables.usercontent.goog/v/assets/index.html
10808            ["UGxvdy1BbmQtR3Jvdw==", "NDUzMDAxODI1NDc0MjYyMzkxLnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat Plow-And-Grow 453001825474262391.playables.usercontent.goog/v/assets/index.html
10809            ["Q29va2luZy1KYW0=", "MTE5MzIwMTA1OTM1NzM4NTQ4MjcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Cooking-Jam 11932010593573854827.playables.usercontent.goog/v/assets/index.html
10810            ["RHJhdy1GbHk=", "MTMwNjAzMjQxMTUyMzU1MzAzNzQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Draw-Fly 13060324115235530374.playables.usercontent.goog/v/assets/index.html
10811            ["QnVpbGQtQS1LYXJ0aW5nLVRyYWNr", "MTEyNzg5MDQwNDM5Mjc4NzEwMjcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Build-A-Karting-Track 11278904043927871027.playables.usercontent.goog/v/assets/index.html
10812            ["R3VuLVN0cmlrZS1SdW5uZXI=", "MTU3NTYzMDgyNjQ2OTA1MDU5OTAucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Gun-Strike-Runner 15756308264690505990.playables.usercontent.goog/v/assets/index.html
10813            ["QnVpbGQtQS1Sb2xsZXJjb2FzdGVy", "Nzg4MTAzNzcyOTAyODM0MzA1NC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Build-A-Rollercoaster 7881037729028343054.playables.usercontent.goog/v/assets/index.html
10814            ["SG93LVRvLUxvb3QtUGluLVB1bGw=", "NzA1Mjc0MjE4OTU5MzA0MzY2LnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat How-To-Loot-Pin-Pull 705274218959304366.playables.usercontent.goog/v/assets/index.html
10815            ["Q2FyLUNyYXNoLVNhbmRib3g=", "MTAzODk3OTU0NzYxNzI2Mzg5OS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Car-Crash-Sandbox 1038979547617263899.playables.usercontent.goog/v/assets/index.html
10816            ["RmFjZS1Ub3dlcg==", "ODEwNzEwNDE0NjkyNjY5Nzg1My5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Face-Tower 8107104146926697853.playables.usercontent.goog/v/assets/index.html
10817            ["RnVuLUZpc2hpbmc=", "NzA4OTIxNzI1MTQwNDQyNTIyNC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Fun-Fishing 7089217251404425224.playables.usercontent.goog/v/assets/index.html
10818            ["UGxpbmtvLUNsaWNrZXI=", "MTcxNDY4MzI3Nzk2NDA3NzM1NTEucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Plinko-Clicker 17146832779640773551.playables.usercontent.goog/v/assets/index.html
10819            ["U2FuZGNhc3RsZQ==", "MTY5NTA4NTkyMDc2NDEwNDMzMTMucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Sandcastle 16950859207641043313.playables.usercontent.goog/v/assets/index.html
10820            ["VHJpY2t5LU1pbmRzLUJyYWlueS1QdXp6bGU=", "MTc0MTQ3MjY4NDc2NTI4MzM0NTMucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Tricky-Minds-Brainy-Puzzle 17414726847652833453.playables.usercontent.goog/v/assets/index.html
10821            ["QnJpY2tzLUFuZC1CYWxscy1DcnVzaGVy", "MTM2ODQ1MjMxMDIxMDkzODk0NTkucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Bricks-And-Balls-Crusher 13684523102109389459.playables.usercontent.goog/v/assets/index.html
10822            ["Q2F0LUJveC1NZXJnZQ==", "MTQ2NDAxNzU0NjY3NDY4Nzg2NzEucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Cat-Box-Merge 14640175466746878671.playables.usercontent.goog/v/assets/index.html
10823            ["U21vb3RoaWUtSmFt", "MTA1OTE5ODE5NDUwMzIzODg3ODcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Smoothie-Jam 10591981945032388787.playables.usercontent.goog/v/assets/index.html
10824            ["Q3JpbWUtQW5kLVZpY2UtQ2l0eS1Qb2xpY2U=", "MTQxNDMwMjc4MzcyMDYyMDU4NjEucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Crime-And-Vice-City-Police 14143027837206205861.playables.usercontent.goog/v/assets/index.html
10825            ["SGFwcHktU21hc2g=", "Njk2NzI3MjM5Mzg5NDY3MzgwMS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Happy-Smash 6967272393894673801.playables.usercontent.goog/v/assets/index.html
10826            ["TXlzdGVyeS1EdW1wbGluZy1Hby1NZXJnZQ==", "MTEzNDA3MTExNzI0MTg4Nzk0NzQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Mystery-Dumpling-Go-Merge 11340711172418879474.playables.usercontent.goog/v/assets/index.html
10827            ["V2l6YXJkJ3MtU3RhbmQ=", "NTM2MDA1NjE4OTUwMzY1MTEwOS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Wizard's-Stand 5360056189503651109.playables.usercontent.goog/v/assets/index.html
10828            ["SHVtYW4tVHJhbnNmb3Jt", "MzgxMzY1NDI3MjkyODkyMjIyNi5wbGF5YWJsZXMudXNlcmNvbn
10828RlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Human-Transform 3813654272928922226.playables.usercontent.goog/v/assets/index.html
10829            ["U3dpc2gtQnVja2V0cw==", "ODI3NzY3MTk5NTczNzY1MDgyNC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Swish-Buckets 8277671995737650824.playables.usercontent.goog/v/assets/index.html
10830            ["SGVscC1IaW0tV2lu", "NTczMDM0NDI1MTU2MzM4NDY3NC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Help-Him-Win 5730344251563384674.playables.usercontent.goog/v/assets/index.html
10831            //
10832            ["Q3JhZnQtSXNsYW5kLVN1cnZpdmFsLTNE", "MTU4NjI2MTIxNjA5NDI4NjUxMTEucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Craft-Island-Survival-3D 15862612160942865111.playables.usercontent.goog/v/assets/index.html
10833            ["Tm8tUGFpbi1Oby1HYWlu", "MzE2OTIyNDU5MjAyMDA2MDM4Ni5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat No-Pain-No-Gain 3169224592020060386.playables.usercontent.goog/v/assets/index.html
10834            ["QmxvY2tpYm8=", "MTQ5NDg0OTAyOTY5OTc2MTY2MzIucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Blockibo 14948490296997616632.playables.usercontent.goog/v/assets/index.html
10835            ["S25pZmUtVG93ZXI=", "MTMxNzY5NzE5NzE1Mjc1NjIzOTAucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Knife-Tower 13176971971527562390.playables.usercontent.goog/v/assets/index.html
10836            ["RHJhdy1QdXp6bGU=", "MjkzOTYwNzgzMzA2NjU4MjM0OC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Draw-Puzzle 2939607833066582348.playables.usercontent.goog/v/assets/index.html
10837            ["QmxvY2t5LVBpZy1TaW11bGF0b3ItM0Q=", "NDAwNzgzNDUwMTUxMDgxOTAxMS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Blocky-Pig-Simulator-3D 4007834501510819011.playables.usercontent.goog/v/assets/index.html
10838            ["SnVyYXNzaWMtTWVyZ2UtRGluby1Fdm9sdXRpb24=", "MTQ2NDIxNzM4ODk0NDU0MzU0NTUucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Jurassic-Merge-Dino-Evolution 14642173889445435455.playables.usercontent.goog/v/assets/index.html
10839            ["Q2FyLUNyYXNoLVBoeXNpY3MtM0Q=", "MTYwNzAxOTE5NjQ2MDEzMjg3NjYucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Car-Crash-Physics-3D 16070191964601328766.playables.usercontent.goog/v/assets/index.html
10840            ["TXktVGFsa2luZy1JdGFsaWFuLUJyYWlucm90", "ODQ5OTI0NDIyNjQwMDQ3MzE0LnBsYXlhYmxlcy51c2VyY29udGVudC5nb29nL3YvYXNzZXRzL2luZGV4Lmh0bWw=", "", 0, "!d!t!webp#portrait"], //cat My-Talking-Italian-Brainrot 849924422640047314.playables.usercontent.goog/v/assets/index.html
10841            ["Q2FyLVdhc2gtRElZ", "NzU3NTAzMTc0NjY5NDE1MDE1NS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Car-Wash-DIY 7575031746694150155.playables.usercontent.goog/v/assets/index.html
10842            ["Q2F0LU1ha2VvdmVyLUFTTVI=", "MTc0OTk5NTY0MjIzMjIzMjM1NjMucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Cat-Makeover-ASMR 17499956422322323563.playables.usercontent.goog/v/assets/index.html
10843            ["VGFsa2luZy1DYXQ=", "MTgzODk5NTk2ODAzMzQ2MjM1MzQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Talking-Cat 18389959680334623534.playables.usercontent.goog/v/assets/index.html
10844            ["U2NhbGVtYW4tM0Q=", "MTYwMDI3OTIzODM3MjM3MjAwNS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Scaleman-3D 1600279238372372005.playables.usercontent.goog/v/assets/index.html
10845            ["RmFzdC1CYWxsLUp1bXA=", "MTY5Mzk4ODcyMDQ0MzgzMjg5MTgucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Fast-Ball-Jump 16939887204438328918.playables.usercontent.goog/v/assets/index.html
10846            ["U3R1bnRzLTQtQ2FzaA==", "NzAyNTU5MDk5MjY1NTQzMzkyMi5wbGF5YWJsZXMudXNlcmNvbn
10846RlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Stunts-4-Cash 7025590992655433922.playables.usercontent.goog/v/assets/index.html
10847            ["Q29pbi1SdW4=", "MTQxMDEyNzczNzcwMDU0NTU2OC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Coin-Run 1410127737700545568.playables.usercontent.goog/v/assets/index.html
10848            ["U3RpY2ttYW4tV2FycmlvcnMtMi1FcGlj", "NjcwMTY4NDI3NzU0NzUyNDg1OC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Stickman-Warriors-2-Epic 6701684277547524858.playables.usercontent.goog/v/assets/index.html
10849            ["UHJvLVBhaW50ZXI=", "ODE4MDYzODQ4NDUzNjAzODU1NC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Pro-Painter 8180638484536038554.playables.usercontent.goog/v/assets/index.html
10850            ["Q3Jhc2gtTGFi", "MzE1OTc2MDM0NTEwNTg1MjE1MC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Crash-Lab 3159760345105852150.playables.usercontent.goog/v/assets/index.html
10851            ["RmFzaGlvbi1NZXJnZQ==", "MTQzNzc3ODQ3MzY0NjU5Mjg0NTcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Fashion-Merge 14377784736465928457.playables.usercontent.goog/v/assets/index.html
10852            ["S2ljay1BLUx1Y2t5LUJsb2NrLVRzdW5hbWktV2F2ZXM=", "MzA5MTY2ODI4NDU3ODMzOTY1OC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Kick-A-Lucky-Block-Tsunami-Waves 3091668284578339658.playables.usercontent.goog/v/assets/index.html
10853            ["TWVyZ2luZy1DdWJlcw==", "Nzg3OTIxMTM2MjY2MTMzNDc0Mi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Merging-Cubes 7879211362661334742.playables.usercontent.goog/v/assets/index.html
10854            ["U3dhcC1UaGUtUGljdHVyZXM=", "MTI0MjgwNzY2NDIxNDU2MjIwMzEucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Swap-The-Pictures 12428076642145622031.playables.usercontent.goog/v/assets/index.html
10855            ["R3ltLVNpbXVsYXRvci1Fc2NhcGU=", "Mjk0MzAwMTIzODI1OTQ2MzQwMy5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Gym-Simulator-Escape 2943001238259463403.playables.usercontent.goog/v/assets/index.html
10856            ["Q29va2luZy1UcmVuZHk=", "MzUwMTgwODEyMDI3ODA2MzMzMC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Cooking-Trendy 3501808120278063330.playables.usercontent.goog/v/assets/index.html
10857            ["RnVybml0dXJlLU1hc3Rlcg==", "MTQ2OTAzNDg5NzA0NTg1Nzc0NjAucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Furniture-Master 14690348970458577460.playables.usercontent.goog/v/assets/index.html
10858            ["V2VzdGVybi1GYXJt", "OTkxNDg1MDYzNTgxOTAzMDkyNy5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Western-Farm 9914850635819030927.playables.usercontent.goog/v/assets/index.html
10859            ["Q29sb3ItQmxvY2stUGFpcnM=", "MTIxNTA0OTAxMDE3NTQ2MzI1OTcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Color-Block-Pairs 12150490101754632597.playables.usercontent.goog/v/assets/index.html
10860            ["U3dpc2gtU3RyaWtlcnM=", "MjcxMTI1NjMzMDQ0MTg4NTE3MC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Swish-Strikers 2711256330441885170.playables.usercontent.goog/v/assets/index.html
10861            ["Rm9ydHJlc3MtQ2xhc2g=", "MTc1NjkxMzg4NjI4NDQ4NTMwMzgucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Fortress-Clash 17569138862844853038.playables.usercontent.goog/v/assets/index.html
10862            ["T3JkZXItVXAtQ2FmZQ==", "OTM4MjA2Mjc4Mjc3OTU3NDYwNS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Order-Up-Cafe 9382062782779574605.playables.usercontent.goog/v/assets/index.html
10863            ["U3RpY2tlci1EcmVzc3Vw", "OTM2MzE5NDQ3Nzc4NDgzNTM0Ny5wbGF5YWJsZXMudXNlcmNvbn
10863RlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Sticker-Dressup 9363194477784835347.playables.usercontent.goog/v/assets/index.html
10864            ["TXktQmFrZXJ5", "MjAzODUwNDkxNTQyNTY5ODg0OC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat My-Bakery 2038504915425698848.playables.usercontent.goog/v/assets/index.html
10865            ["VGFwLUZpZ2h0ZXI=", "MTQ5MDg4OTk3NDc1NzgyNzk4ODIucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Tap-Fighter 14908899747578279882.playables.usercontent.goog/v/assets/index.html
10866            ["RXNjYXBlLUZyb20tU2Nob29s", "OTQyNzI3NzE2MzQ2NjYyOTg0MS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Escape-From-School 9427277163466629841.playables.usercontent.goog/v/assets/index.html
10867            ["U3RpY2t5LUNhcm5hZ2U=", "MTE4MjcwNTUzMTkwNjg4ODkyNDEucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Sticky-Carnage 11827055319068889241.playables.usercontent.goog/v/assets/index.html
10868            ["U3BpbGwtU2hpZnQ=", "MTQxNDEzNTY0MTU1OTAxNzg5NS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Spill-Shift 1414135641559017895.playables.usercontent.goog/v/assets/index.html
10869            ["UGl4ZWwtUHVuY2g=", "MTA2NDk3ODc0NDQ0MDY3NDM1NjEucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Pixel-Punch 10649787444406743561.playables.usercontent.goog/v/assets/index.html
10870            ["M0QtQmxvY2stR2xhZGlhdG9yLVN3b3JkLURyYXdu", "MTY5MzI0OTM2NDcwOTEzMTU4NDcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat 3D-Block-Gladiator-Sword-Drawn 16932493647091315847.playables.usercontent.goog/v/assets/index.html
10871            ["T2JieS1DaGFtZWxlb24tUGFpbnQtQW5kLUhpZGU=", "NjQ4NjAyMDI0MTY4MjU1MzA4Ni5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Obby-Chameleon-Paint-And-Hide 6486020241682553086.playables.usercontent.goog/v/assets/index.html
10872            ["T2JieS1TdXJ2aXZlLUxhdmE=", "NjgxMjU4ODEzNjA5NzkzNDQ0Mi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Obby-Survive-Lava 6812588136097934442.playables.usercontent.goog/v/assets/index.html
10873            ["Q3Jvd2QtTWFzdGVy", "ODM2ODA1Njg4NTc2MDc4MjM3NS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Crowd-Master 8368056885760782375.playables.usercontent.goog/v/assets/index.html
10874            ["RmlndXJlLVNrYXRpbmctT24tSWNl", "MTc2MDQ1MDg5NjE0MzQ5OTEzODAucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait"], //cat Figure-Skating-On-Ice 17604508961434991380.playables.usercontent.goog/v/assets/index.html
10875            ["RmFybS1EZWZlbmRlcnM=", "MTQxMjA4MjAxNjA4NzIwMDI1Ni5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Farm-Defenders 1412082016087200256.playables.usercontent.goog/v/assets/index.html
10876            ["R3ltLU1hdGNoLUxpZnQtVXA=", "NTkyMTg5NTg4NDQ2Mjk0NjkyMy5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Gym-Match-Lift-Up 5921895884462946923.playables.usercontent.goog/v/assets/index.html
10877
10878            //https://7025590992655433922.playables.usercontent.goog/v/assets/index.html#flags=%7B%22enableServiceWorker%22%3Afalse%7D&origin=https%3A%2F%2Fwww.youtube.com
10879
10880            //SINGLE ["64-n", "64-u", "", 0, "!d!t!webp#landscape"], //cat Game-Name www.yurk.com/games/xxx/ ... simple
10881            //DOUBLE ["NNN", "DDD", "", 0, "!d!t!webp#landscape"], //1-POPULATE: Game-Name www.example.com/game/  |||  2-POPULATE: 2dans.com/gf.html?GGG,NNN and main NNN  |||  3-POPULATE-MAIN-DDD: ...where-shonky-and-possible
10882            //["NNN", "DDD", "", 0, "!3pk!d!t!webp#landscape"], //Game-Name ...URL...  www.example.com/game/ > 2dans.com/gf.html?GGG,NNN 
10883        ];
10884
10885        //removed...
10886        /*
10887        */
10888
10889        if (testVer || shortLang == "en" || shortLang == "es" || shortLang == "fr" || shortLang == "tr") { //limited for now
10890            devoryGamesArray.unshift(
10891                ["UXVpei1TaG93", "MjY4ODAzODY0OTE2MTE5NzgwMC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Quiz-Show 2688038649161197800.playables.usercontent.goog/v/assets/index.html //en-es-tr-fr
10892
10893            );
10894        }
10895
10896        if (testVer || shortLang == "es") { //limited for now
10897            devoryGamesArray.unshift(
10898                ["RG9taW5v", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy9hZDYxOTM2YS1lNmZhLTQwN2MtODdmYi02MjI0ZmI0YzY5YzcvODczY2Y2YWVkMjc5ZDNhYWVjM2EwMWY1ZjM2ZTA2MjQzZWE5ZmQ3OS9yZWxlYXNlL2luZGV4Lmh0bWw/cGxheU9wdGlvbnM9JTdCJTIybGFuZ3VhZ2UlMjIlM0ElMjJlcyUyMiU3RA==", "", 0, "!d!t!webp#portrait"], //cat Domino Alma-Dominoes springroll-tc.pbskids.org/ad61936a-e6fa-407c-87fb-6224fb4c69c7/873cf6aed279d3aaec3a01f5f36e06243ea9fd79/release/index.html?playOptions=%7B%22language%22%3A%22es%22%7D
10899                ["Rmllc3RhLUNvbi1BbG1h", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy9hbG1hcy13YXktYWx3YXlzLXJvb20tZm9yLW9uZS1tb3JlL2FhOWM1MTgyYjhmNGY4N2NhNDU1YzYwNDZhMDEzNjYxZDk4MzlhZGYvcmVsZWFzZS9pbmRleC5odG1sP3BsYXlPcHRpb25zPSU3QiUyMmxhbmd1YWdlJTIyJTNBJTIyZXMlMjIlN0Q=", "", 0, "!d!t!webp#portrait"], //cat Fiesta-Con-Alma Party-At-Alma's springroll-tc.pbskids.org/almas-way-always-room-for-one-more/aa9c5182b8f4f87ca455c6046a013661d9839adf/release/index.html?playOptions=%7B%22language%22%3A%22es%22%7D
10900                ["TGEtRXhjdXJzaW9uLUVzcGFjaWFs", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy9kb25rZXktaG9kaWUtcGFuZGFzLXNwYWNlLWJvcC8wYTc3NjM2OTY5YjA4NTMxMjc3ZDRlMWIzNGNkMmE5ODIyZTZiNmI4L3JlbGVhc2UvaW5kZXguaHRtbD9wbGF5T3B0aW9ucz0lN0IlMjJsYW5ndWFnZSUyMiUzQSUyMmVzJTIyJTdE", "", 0, "!d!t!webp#portrait"], //cat La-Excursion-Espacial Space-Bop springroll-tc.pbskids.org/donkey-hodie-pandas-space-bop/0a77636969b08531277d4e1b34cd2a9822e6b6b8/release/index.html?playOptions=%7B%22language%22%3A%22es%22%7D
10901                ["RWwtUHJpbW8tRG9ua2k=", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy80MzU4OThjOS01ZmI2LTQyMmQtOGI1Ny1hNmVmNzA2NmU3NGQvMjVhNzIxNjI4MTZjMGQ5OWZkYzkwN2Q1NmNlNThjZDE2YzMyZDkxMC9yZWxlYXNlL2luZGV4Lmh0bWw/cGxheU9wdGlvbnM9JTdCJTIybGFuZ3VhZ2UlMjIlM0ElMjJlcyUyMiU3RA==", "", 0, "!d!t!webp#portrait"], //cat El-Primo-Donki Cousin-Hodie-Playdate springroll-tc.pbskids.org/435898c9-5fb6-422d-8b57-a6ef7066e74d/25a72162816c0d99fdc907d56ce58cd16c32d910/release/index.html?playOptions=%7B%22language%22%3A%22es%22%7D
10902                ["QS1DcmVhci1Db24tQWxtYQ==", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy9jZjM4Mjk3ZS05MGZjLTQzN2YtOGQ2My0yNTY4YTAxN2ZlYjYvOGU3ZDhkYzk5ZjYzMjI3MzIwNjhkZTZkYzQyNmYxNTYwY2JiN2I1ZC9yZWxlYXNlL2luZGV4Lmh0bWw/cGxheU9wdGlvbnM9JTdCJTIybGFuZ3VhZ2UlMjIlM0ElMjJlcyUyMiU3RA==", "", 0, "!d!t!webp#portrait"], //cat A-Crear-Con-Alma Alma-Let's-Create springroll-tc.pbskids.org/cf38297e-90fc-437f-8d63-2568a017feb6/8e7d8dc99f6322732068de6dc426f1560cbb7b5d/release/index.html?playOptions=%7B%22language%22%3A%22es%22%7D
10903                ["RGV0ZWN0aXZlLURvbmtp", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy8zNjc1YjU2My04OTJhLTRlNTItOTM3NS1hYjBiZWYwNDdiNGEvYWI4OTVmM2Y4NzczZmE0NWIwNzVkNWI2ODM2MTYyNzMyNmRhZTQ1Yi9yZWxlYXNlL2luZGV4Lmh0bWw/cGxheU9wdGlvbnM9JTdCJTIybGFuZ3VhZ2UlMjIlM0ElMjJlcyUyMiU3RA==", "", 0, "!d!t!webp#portrait"], //cat Detective-Donki Detective-Donkey springroll-tc.pbskids.org/3675b563-892a-4e52-9375-ab0bef047b4a/ab895f3f8773fa45b075d5b68361627326dae45b/release/index.html?playOptions=%7B%22language%22%3A%22es%22%7D
10904                ["TGEtRGluby1GaWVzdGE=", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy81ZWIxNmRhZS1hMzcwLTQxZmEtOTY5Zi1lZTJiYTYwYmNjMDYvODg1NzE3ZjNhNDAzNjQ2ZTA1NTcwYWQxNDUzYWUxYzBkYTA4NDQxZS9yZWxlYXNlL2luZGV4Lmh0bWw/cGxheU9wdGlvbnM9JTdCJTIybGFuZ3VhZ2UlMjIlM0ElMjJlcyUyMiU3RA==", "", 0, "!d!t!webp#portrait"], //cat La-Dino-Fiesta Dino-Dance-Party springroll-tc.pbskids.org/5eb16dae-a370-41fa-969f-ee2ba60bcc06/885717f3a403646e05570ad1453ae1c0da08441e/release/index.html?playOptions=%7B%22language%22%3A%22es%22%7D
10905                ["SGVsYWRvLURlLVlvZ3Vy", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy9mcm95by85ZjBjMWU3OGU3ZTJkNWYxYzYwYjVlOTk3YTY3YzFjZWE2NjM3ZDg5L3JlbGVhc2UvaW5kZXguaHRtbD9wbGF5T3B0aW9ucz0lN0IlMjJsYW5ndWFnZSUyMiUzQSUyMmVzJTIyJTdE", "", 0, "!d!t!webp#portrait"], //cat Helado-De-Yogur Froyo-Stand springroll-tc.pbskids.org/froyo/9f0c1e78e7e2d5f1c60b5e997a67c1cea6637d89/release/index.html?playOptions=%7B%22language%22%3A%22es%22%7D
10906                ["QW1pZ3VpLUFydGlzdGFz", "c3ByaW5ncm9sbC10Yy5wYnNraWRzLm9yZy9hcnQtcGFscy9lNjg4ZmUxZjI2MTlhMGU2NjJmMGI5NWM2NTc3ZjM0NDAwMThmNjQxL3JlbGVhc2UvaW5kZXguaHRtbD9wbGF5T3B0aW9ucz0lN0IlMjJsYW5ndWFnZSUyMiUzQSUyMmVzJTIyJTdE", "", 0, "!d!t!webp#portrait"], //cat Amigui-Artistas Art-Pals springroll-tc.pbskids.org/art-pals/e688fe1f2619a0e662f0b95c6577f3440018f641/release/index.html?playOptions=%7B%22language%22%3A%22es%22%7D
10907            );
10908        }
10909
10910        var fbwgGamesArray = [
10911            ["RmlyZWJveS1BbmQtV2F0ZXJnaXJsLTE=", "MmRhbnMuY29tL2dmLmh0bWw/ZFc1aWJHOWphMlZrY3kxbllXMWxjeTVqYjIwdloyRnRaWE12Wm1KM1p6RXZhVzVrWlhndWFIUnRiQT09LFJtbHlaV0p2ZVMxQmJtUXRWMkYwWlhKbmFYSnNMVEU9", "", 0, "!3pk!d!T-t#landscape2player#platform#puzzle"],
10912            ["RmlyZWJveS1BbmQtV2F0ZXJnaXJsLTI=", "MmRhbnMuY29tL2dmLmh0bWw/ZFc1aWJHOWphMlZrY3kxbllXMWxjeTVqYjIwdloyRnRaWE12Wm1KM1p6SXZhVzVrWlhndWFIUnRiQT09LFJtbHlaV0p2ZVMxQmJtUXRWMkYwWlhKbmFYSnNMVEk9", "", 0, "!3pk!d!T-t#landscape#2player#platform#puzzle"],
10913            ["RmlyZWJveS1BbmQtV2F0ZXJnaXJsLTM=", "MmRhbnMuY29tL2dmLmh0bWw/ZFc1aWJHOWphMlZrY3kxbllXMWxjeTVqYjIwdloyRnRaWE12Wm1KM1p6TXZhVzVrWlhndWFIUnRiQT09LFJtbHlaV0p2ZVMxQmJtUXRWMkYwWlhKbmFYSnNMVE09", "", 0, "!3pk!d!T-t#landscape2player#platform#puzzle"],
10914            ["RmlyZWJveS1BbmQtV2F0ZXJnaXJsLTQ=", "MmRhbnMuY29tL2dmLmh0bWw/ZFc1aWJHOWphMlZrY3kxbllXMWxjeTVqYjIwdloyRnRaWE12Wm1KM1p6UXZhVzVrWlhndWFIUnRiQT09LFJtbHlaV0p2ZVMxQmJtUXRWMkYwWlhKbmFYSnNMVFE9", "", 0, "!3pk!d!T-t#landscape2player#platform#puzzle"],
10915            ["RmlyZWJveS1BbmQtV2F0ZXJnaXJsLTU=", "MmRhbnMuY29tL2dmLmh0bWw/WVdkaGJXVmpaRzR1WTI5dEwzTjVjM1JsYlM5emRHRjBhV012WjJGdFpYTXZSbWx5WldKdmVWOWhibVJmVjJGMFpYSm5hWEpzWDBWc1pXMWxiblJ6TDJsdVpHVjRMbWgwYld3PSxSbWx5WldKdmVTMUJibVF0VjJGMFpYSm5hWEpzTFRVPQ==", "", 0, "!3pk!d!T-t!webp#landscape2player#platform#puzzle"],
10916            ["RmlyZWJveS1BbmQtV2F0ZXJnaXJsLTY=", "MmRhbnMuY29tL2dmLmh0bWw/WVdkaGJXVmpaRzR1WTI5dEwzTjVjM1JsYlM5emRHRjBhV012WjJGdFpYTXZSbWx5WldKdmVWOWhibVJmVjJGMFpYSm5hWEpzWDBaaGFYSjVYMVJoYkdWekwybHVaR1Y0TG1oMGJXdz0sUm1seVpXSnZl
10916UzFCYm1RdFYyRjBaWEpuYVhKc0xUWT0=", "", 0, "!3pk!d!T-t!webp#landscape2player#platform#puzzle"],
10917        ];
10918
10919        //fdc-exlusives
10920        if (testVer || devorySiteID == "FDC") {
10921
10922            devoryGamesArray.push(
10923                ["UmFjZS1NYXN0ZXItM0Q=", "MjMxODI3NDA4NzcwODM4OTA2Ni5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "MjMxODI3NDA4NzcwODM4OTA2Ni5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9UZW1wbGF0ZURhdGEvZmF2aWNvbi5pY28=", 256, "!d!t!webp#portrait#x3d#action#motorsport"], //mon-race-master-3d
10924                ["QnJpZGdlLVJhY2U=", "MjIyMDM0NzQxNDUzMTQxOTIyNy5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy8=", "MjIyMDM0NzQxNDUzMTQxOTIyNy5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9UZW1wbGF0ZURhdGEvcHJvZ3Jlc3MtYmFyLWZ1bGwtZGFyay5wbmc=", 141, "!d!t!webp#portrait#x3d#action#running#strategy"], //mon-bridge-race
10925                ["U2N1bHB0LVBlb3BsZQ==", "NjMwNjc3NDQxNTgwMTgxNjEwOS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 150, "!d!t!webp#landscape#x3d#art#creative#jobs"], //sculpt-people 6306774415801816109.playables.usercontent.goog/v/assets/index.html //fixed-29-08-2026
10926                ["VGhpZWYtUHV6emxl", "NW11YmtqMzBrODk5OC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi83OW4xY2t0azkyMzcwLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 106, "!d!t!webp#landscape#puzzle#misc"], //mon-thief-puzzle-new-with-sound
10927                ["SGlkZS1uLVNlZWs=", "ODMyODc1MDQ1ODcyNDQ3ODEwMi5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t#portrait#x3d#action#running#strategy"],
10928                ["RGVzc2VydC1ESVk=", "MTEwOTU3NDk0NDg0MTI3ODk5MzgucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!t!webp#portrait#x3d#creative#food#girls#jobs"], //dessert-diy 11095749448412789938.playables.usercontent.goog/v/assets/index.html //fixed-07-09-2026
10929                ["RHJhd2luZy1DYXJuaXZhbA==", "MTM3NjkwNjk1MDY3NTU4NTg1NDQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMv", "", 0, "!d!t!webp#portrait#x3d#art#creative#jobs"],
10930                ["U3RpY2ttYW4tU3dpbmc=", "d3d3Lnl1cmsuY29tL2dhbWVzL3N0aWNrbWFuc3dpbmcvbC5odG1s", "", 0, "!d!T-c#portrait#action"],
10931                ["RmluZC1UaGUtQWxpZW4=", "NTE2MzQwNjE4OTcwMjQ4NTIxMy5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait#x3d#shooting"],
10932                ["QnJhaW4tT3V0", "MzcyNzc4MzU3ODkxNTkwNDM2NC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait#puzzle"],
10933                ["QW1hemU=", "MTAwNTMyNDA4ODA3MzE4ODYxMy5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait#x3d#puzzle"], //amaze 1005324088073188613.playables.usercontent.goog/v/assets/index.html //fixed-21-08-2026
10934            );
10935
10936        }
10937
10938        if (testVer || devorySiteID != "FDC") {
10939
10940            devoryGamesArray.push(
10941                ["RnVubnktSGFpcmN1dA==", "d3d3LmZyaXYuY29tL3ovZ2FtZXMvZnVubnloYWlyY3V0L2dhbWUuaHRtbD9k", "", 0, "!d!T-t#landscape#creative#dressup#jobs#girls"], // www.friv.com/z/games/funnyhaircut/game.html?d
10942                ["TW90by1YM00=", "d3d3LmZyaXYuY29tL3ovZ2FtZXMvbW90b3gzbS9nYW1lLmh0bWw/ZA==", "", 0, "!d!T-t#landscape#action#motorsport#platform"], // www.friv.com/z/games/motox3m/game.html?d
10943                ["QmlnZ2VzdC1CdXJnZXItQ2hhbGxlbmdl", "d3d3LmZyaXYuY29tL3ovZ2FtZXMvYmlnZ2VzdGJ1cmdlcmNoYWxsZW5nZS9nYW1lLmh0bWw/ZA==", "", 0, "!d!T-t#landscape#creative#food#jobs"], // www.friv.com/z/games/biggestburgerchallenge/game.html?d
10944                ["UGl4ZWwtUGFpbnRlcg==", "d3d3Lnl1cmsuY29tL2dhbWVzL3BpeGVscGFpbnRlci8=", "", 0, "!d!T-t#landscape#art"],
10945                ["RGFuZ2VyLU1vdXNlLVVsdGltYXRl", "MmRhbnMuY29tL2dhbWVzL2Rhbmdlcm1vdXNldWx0aW1hdGUv", "", 0, "!d!T-t!webp!so#landscape"], //cat Danger-Mouse-Ultimate 2dans.com/games/dangermouseultimate/
10946                ["S2l6aS1LYXJ0LVJhY2luZw==", "YXNzZXRzLnRscGcubmwvZ2FtZXMva2lkcy8yLzExMzE1Mi9pbmRleC5odG1s", "", 0, "!d!T-t!webp#landscape"], //cat Kizi-Kart-Racing assets.tlpg.nl/games/kids/2/113152/index.html
10947                ["TWFkbWVuLVJhY2luZw==", "YXNzZXRzLnRscGcubmwvZ2FtZXMva2lkcy81LzIyMzg1L2luZGV4Lmh0bWw=", "", 0, "!d!T-t!webp#landscape"], //cat Madmen-Racing assets.tlpg.nl/games/kids/5/22385/index.html
10948                ["Q2hhcmFjdGVyLUNyZWF0b3I=", "d3d3LjJkYW5zLmNvbS9nYW1lcy9jaGFyYWN0ZXJjcmVhdG9yLw==", "", 0, "!d!T-t!webp#landscape#creative#dressup#kiddies"], //character-creator-new
10949                ["V2hlZWx5LTI=", "YXNzZXRzLnRscGcubmwvZ2FtZXMva2lkcy81LzIxMDI1L2luZGV4Lmh0bWw=", "", 0, "!d!T-t!webp#landscape"], //cat Wheely-2 assets.tlpg.nl/games/kids/5/21025/index.html
10950                ["V2hlZWx5LTM=", "YXNzZXRzLnRscGcubmwvZ2FtZXMva2lkcy84LzIyMjc4L2luZGV4Lmh0bWw=", "", 0, "!d!T-t!webp#landscape"], //cat Wheely-3 assets.tlpg.nl/games/kids/8/22278/index.html
10951                ["V2hlZWx5LTQ=", "YXNzZXRzLnRscGcubmwvZ2FtZXMva2lkcy8xLzIzODAxL2luZGV4Lmh0bWw=", "", 0, "!d!T-t!webp#landscape"], //cat Wheely-4 assets.tlpg.nl/games/kids/1/23801/index.html
10952                ["V2hlZWx5LTU=", "YXNzZXRzLnRscGcubmwvZ2FtZXMva2lkcy8wLzI0NTEwL2luZGV4Lmh0bWw=", "", 0, "!d!T-t!webp#landscape"], //cat Wheely-5 assets.tlpg.nl/games/kids/0/24510/index.html
10953                ["Q29sb3JpbmctVGltZS1BbmltYWxz", "YXNzZXRzLnRscGcubmwvZ2FtZXMva2lkcy8zLzExMjUyMy9pbmRleC5odG1s", "", 0, "!d!T-t!webp#landscape"], //cat Coloring-Time-Animals assets.tlpg.nl/games/kids/3/112523/index.html
10954                ["V29vZC1CbG9ja3MtSmFt", "MTI3MDg4Mzc5Mjc5Mjk5MTE0MTcucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!T-t!webp#portrait"], //cat Wood-Blocks-Jam 12708837927929911417.playables.usercontent.goog/v/assets/index.html //fixed 21-05-2026
10955                ["VGVtcGxlLUJlYXJz", "d3d3LjJkYW5zLmNvbS9nYW1lcy90ZW1wbGViZWFycy8=", "", 0, "!d!T-t!webp#landscape#adventure#cute#puzzle"], //temple-bears-new
10956                ["TWVyZ2UtRnJ1aXQ=", "M2VsdGI3aTg3NHM2MC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8yOGYzNGlnaHFvaDEwLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!T-t!webp#portrait"], //cat Merge-Fruit 3eltb7i874s60.h5games.usercontent.goog/v/28f34ighqoh10/?origin=https%3A%2F%2Fgamesnacks.com
10957                ["U3Vkb2t1LUNsYXNzaWM=", "Nzk3Nzc1NjA0ODAxNjEwMzAxNy5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!T-t!webp#portrait"], //cat Sudoku-Classic 7977756048016103017.playables.usercontent.goog/v/assets/index.html
10958                ["U25lYWtlci1TbmF0Y2hlcnM=", "d3d3LjJkYW5zLmNvbS9nYW1lcy9zbmVha2Vyc25hdGNoZXJzLw==", "", 0, "!d!T-t#landscape#action#adventure#shooting"], //sneaker-snatchers-new
10959                ["U3Rhci1XYXJzLVJlYmVscy1TcGVjaWFsLU9wcw==", "MmRhbnMuY29tL2dhbWVzL3N0YXJ3YXJzcmViZWxzc3BlY2lhbG9wcy8=", "", 0, "!d!t!webp#landscape"], //cat Star-Wars-Rebels-Special-Ops 2dans.com/games/starwarsrebelsspecialops/
10960                ["TXVsdGl2ZXJzZS1NYXloZW0=", "d3d3LjJkYW5zLmNvbS9nYW1lcy9tdWx0aXZlcnNlbWF5aGVtLw==", "", 0, "!d!T-t#landscape#action#strategy"], //multiverse-mayhem-new //d-lcs
10961                ["VWx0aW1hdGUtTWluaS1Hb2xmLVVuaXZlcnNl", "MmRhbnMuY29tL2dhbWVzL3VsdGltYXRlbWluaWdvbGZ1bml2ZXJzZS8=", "", 0, "!d!t!webp#landscape"], //cat Ultimate-Mini-Golf-Universe 2dans.com/games/ultimateminigolfuniverse/
10962                ["SmVsbHktTWFkbmVzcy0y", "YXNzZXRzLnRscGcubmwvZ2FtZXMva2lkcy82LzkzOTc2L2luZGV4Lmh0bWw=", "", 0, "!d!T-t!webp#landscape"], //cat Jelly-Madness-2 assets.tlpg.nl/games/kids/6/93976/index.html
10963                ["TXktRG9scGhpbi1TaG93", "YWdhbWVjZG4uY29tL3N5c3RlbS9zdGF0aWMvZ2FtZXMvTXlfRG9scGhpbl9TaG93XzkvaW5kZXguaHRtbA==", "", 0, "!d!T-t!webp#landscape"], //cat My-Dolphin-Show agamecdn.com/system/static/games/My_Dolphin_Show_9/index.html //outlinks
10964                ["V2hhdCdzLVRoZS1Xb3Jk", "MTc4MDI1MTU0NTIwMzI5NzQxMjQucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!en!d!t!webp#portrait"], //cat What's-The-Word 17802515452032974124.playables.usercontent.goog/v/assets/index.html
10965                ["U2hvdmVsLVN1cnZpdm9y", "NmY1cm50bWc5cW00MC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8zaG1zM3JuYnI5MnAwLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!T-t!webp#portrait"], //cat Shovel-Survivor 6f5rntmg9qm40.h5games.usercontent.goog/v/3hms3rnbr92p0/?origin=https%3A%2F%2Fgamesnacks.com
10966                ["VGlsZS1NYXRjaC1KYW0=", "MTU3OTkyNTA3MDg3MDc4MjE2ODgucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!T-t!webp#portrait"], //cat Tile-Match-Jam 15799250708707821688.playables.usercontent.goog/v/assets/index.html //d-lcs
10967                ["SWRsZS1Ub3dlci1CdWlsZGVy", "NDAyMTIwMjg4MTk0MjEzNDI4NS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Idle-Tower-Builder 4021202881942134285.playables.usercontent.goog/v/assets/index.html //d-lcs //fixed-21-08-2026
10968                ["RmFybS1MYW5k", "MTYyMTcyNTM4OTA5NDY2MjMyNzMucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!T-t!webp#portrait#x3d#food#jobs"], //farm-land //d:0.44
10969                ["Qm9vbWVyYW5nLVNwb3J0cw==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9ib29tZXJhbmdzcG9ydHMv", "", 0, "!d!T-t!so#landscape#action#animals#sport"], //boomerang-sports //d:0.45
10970                ["Q2hlbidzLVJldHVybg==", "d3d3LmxlZ28uY29tL2Fzc2V0cy9uaW5qYWdvL2dhbWVzL2NoZW5zLXJldHVybi9pbmRleC5odG1s", "", 0, "!en!d!T-t#portrait#x3d#action#running"], //chen's-return //d:0.45
10971                ["SHlkcmEtRGFzaA==", "d3d3LjJkYW5zLmNvbS9nYW1lcy9oeWRyYWRhc2gv", "", 0, "!d!t!so!webp#landscape"], //cat Hydra-Dash www.2dans.com/games/hydradash/ //d:0.46
10972                ["UlBTLURvam8=", "MG8yc3NpamQ5OGxnZy5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8zOXQwMTY5MmE0cnM4Lz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!t!webp#portrait"], //cat RPS-Dojo 0o2ssijd98lgg.h5games.usercontent.goog/v/39t01692a4rs8/?origin=https%3A%2F%2Fgamesnacks.com //d:0.48
10973                ["QXZhdGFyLUFyZW5h", "d3d3Lnl1cmsuY29tL2dhbWVzL2F2YXRhcmFyZW5hLw==", "", 0, "!d!T-c#landscape#action#combat"], //avatar-arena //d:0.49
10974                //pg...
10975                ["TXItQnVsbGV0", "d3d3Lnl1cmsuY29tL2dhbWVzL21yYnVsbGV0L2wuaHRtbA==", "", 0, "!pg!D-t!t#landscape#shooting"],
10976                ["U2hhcmtvc2F1cnVzLVJhbXBhZ2U=", "d3d3Lnl1cmsuY29tL2dhbWVzL3NoYXJrb3NhdXJ1c3JhbXBhZ2Uv", "", 0, "!pg!d!T-c#landscape#animals#platform#combat"],
10977                ["UmlvLVJleA==", "d3d3Lnl1cmsuY29tL2dhbWVzL3Jpb3JleC9sLmh0bWw=", "", 0, "!pg!d!T-c#landscape#action#animalscombat#platform"],
10978                ["V2UtQmVjb21lLVdoYXQtV2UtQmVob2xk", "d3d3Lnl1cmsuY29tL2dhbWVzL3dlYmVjb21ld2hhdHdlYmVob2xkLw==", "", 0, "!pg!d!T-c#landscape"], //We-Become-What-We-Behold
10979                ["U3RpY2stTWVyZ2UtSGFsbG93ZWVu", "MmRhbnMuY29tL2dmLmh0bWw/Wnk1cFozSnZkWFJyWVM1eWRTOW5ZVzFsY3k4eE5qUXZVbEE1UTIxQlltbzRabXRUVDNCa055OHlMM04wYVdOclgyMWxjbWRsWDJoaGJHeHZkMlZsYmk4PSxVM1JwWTJzdFRXVnlaMlV0U0dGc2JHOTNaV1Z1", "", 0, "!3pk!pg!d!T-t#landscape#action#combat#halloween"], //stick-merge-halloween //igroutka
10980                ["V2hvLURpZXMtTGFzdA==", "NHQ4NWtsYmZncjJ2MC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi80OWZmNWJ0aWRvb2dnLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!pg!d!t!webp#portrait"], //cat Who-Dies-Last 4t85klbfgr2v0.h5games.usercontent.goog/v/49ff5btidoogg/?origin=https%3A%2F%2Fgamesnacks.com
10981                ["UmFnZG9sbC1HdW4tU2hvb3Rlcg==", "MTU3NjY5NTAyODgxNzQ4NDIwNy5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!pg!d!t!webp#portrait"], //cat Ragdoll-Gun-Shooter 1576695028817484207.playables.usercontent.goog/v/assets/index.html
10982                ["RnJhZy1Qcm8tU2hvb3Rlci1MaXRl", "NDA1NTY1NDY1ODEwODQ5Nzk4My5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!pg!D-t!t!webp#portrait"], //cat Frag-Pro-Shooter-Lite 4055654658108497983.playables.usercontent.goog/v/assets/index.html //lcs-d
10983                ["SHVudGVyLUNhcGl0YWxpc3Q=", "MzExNzYyNDk2MTUzNzc3MTY4MC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!pg!d!t!webp#portrait"], //cat Hunter-Capitalist 3117624961537771680.playables.usercontent.goog/v/assets/index.html
10984                ["SW5jcmVkaWJveC1TcHJ1bmtpLVJldGFrZQ==", "d3d3Lnl1cmsuY29tL2dhbWVzL2luY3JlZGlib3hzcHJ1bmtpcmV0YWtlLw==", "", 0, "!pg!d!t!webp#landscape"], //cat Incredibox-Sprunki-Retake www.yurk.com/games/incrediboxsprunkiretake/
10985                ["Wm9tYmllLUd1bm5lci0y", "d3d3Lnl1cmsuY29tL2dhbWVzL3pvbWJpZWd1bm5lcjIv", "", 0, "!pg!d!t!webp#landscape"], //cat Zombie-Gunner-2 www.yurk.com/games/zombiegunner2/ //d:0.39
10986                //girls...
10987                ["SWNlLVF1ZWVuLUhvc3BpdGFsLVJlY292ZXJ5", "d3d3LmZyaXYuY29tL3ovZ2FtZXMvaWNlcXVlZW5ob3NwaXRhbHJlY292ZXJ5L2dhbWUuaHRtbD9k", "", 0, "!d!T-t!webp#landscape#dressup#creative#girls"], //Ice-Queen-Hospital-Recovery www.friv.com/z/games/icequeenhospitalrecovery/game.html?d
10988                ["UHJpbmNlc3MtVmFtcGlyZS1XZWRkaW5nLUNha2U=", "d3d3LmZyaXYuY29tL3ovZ2FtZXMvcHJpbmNlc3N2YW1waXJld2VkZGluZ21ha2VvdmVyL2dhbWUuaHRtbD9k", "", 0, "!d!T-t!webp#landscape#dressup#creative#girls"], //Princess-Vampire-Wedding-Cake www.friv.com/z/games/princessvampireweddingmakeover/game.html?d
10989                ["U2xlZXBpbmctUHJpbmNlc3MtTmFpbHMtU3Bh", "d3d3LmZyaXYuY29tL3ovZ2FtZXMvc2xlZXBpbmdwcmluY2Vzc25haWxzc3BhL2dhbWUuaHRtbD9k", "", 0, "!d!T-t!webp#landscape#dressup#creative#girls#jobs"], //Sleeping-Princess-Nails-Spa www.friv.com/z/games/sleepingprincessnailsspa/game.html?d
10990                ["T2xpdmlhLUFuZC1DcnlzdGFsLUJGRi1SZWFsLU1ha2VvdmVy", "d3d3LmZyaXYuY29tL3ovZ2FtZXMvb2xpdmlhYW5kY3J5c3RhbGJmZnJlYWxtYWtlb3Zlci9nYW1lLmh0bWw/ZA==", "", 0, "!d!T-t!webp#landscape#dressup#creative#girls"], //Olivia-And-Crystal-BFF-Real-Makeover www.friv.com/z/games/oliviaandcrystalbffrealmakeover/game.html?d
10991                ["UHJpbmNlc3MtV2VkZGluZy1EcmVzcy1EZXNpZ24=", "d3d3LmZyaXYuY29tL3ovZ2FtZXMvcHJpbmNlc3N3ZWRkaW5nZHJlc3NkZXNpZ24vZ2FtZS5odG1sP2Q=", "", 0, "!d!T-t!webp#landscape#dressup#creative#girls"], //Princess-Wedding-Dress-Design www.friv.com/z/games/princessweddingdressdesign/game.html?d
10992                ["RmFzaGlvbi1TdGFycy1VU0E=", "d3d3LmZyaXYuY29tL3ovZ2FtZXMvZmFzaGlvbnN0YXJzdXNhL2dhbWUuaHRtbD9k", "", 0, "!d!t!webp#landscape#dressup#creative#girls#jobs"], //Fashion-Stars-USA www.friv.com/z/games/fashionstarsusa/game.html?d
10993                ["TXktUm9tYW50aWMtVmFsZW50aW5lLVN0b3JpZXM=", "d3d3LmZyaXYuY29tL3ovZ2FtZXMvbXlyb21hbnRpY3ZhbGVudGluZXN0b3JpZXMvZ2FtZS5odG1sP2Q=", "", 0, "!d!T-t!webp#landscape#dressup#creative#girls"], //My-Romantic-Valentine-Stories www.friv.com/z/games/myromanticvalentinestories/game.html?d
10994                ["SW5zdGEtTWFrZXVwLUJyaWRl", "d3d3LmZyaXYuY29tL3ovZ2FtZXMvaW5zdGFtYWtldXBicmlkZS9nYW1lLmh0bWw/ZA==", "", 0, "!d!T-t!webp#landscape#dressup#creative#girls"], //Insta-Makeup-Bride www.friv.com/z/games/instamakeupbride/game.html?d
10995            );
10996        }
10997
10998        if (testVer || specialPeriod == "halloween") {
10999            devoryGamesArray.unshift(
11000                ["U2NhcmVkLVNpbGx5", "d3d3LjJkYW5zLmNvbS9nYW1lcy9zY2FyZWRzaWxseS8=", "", 0, "!d!T-t#landscape#adventure#board#halloween#puzzle"], //scared-silly
11001                ["R2hvc3QtQ3JlYXRvcg==", "ZGVzOThmejVqc29zNC5jbG91ZGZyb250Lm5ldC9ib29tZXJhbmcvZHluYW1pYy93ZWJfZ2FtZS8wMDAwMDAwNS81OTkxLzY4MzhmZmIyLTY1ZjMtNDUwZS1hZWJhLTYxZTBjYzZjYjdkMF8xNjcxNDcxNjI4L2luZGV4Lmh0bWw=", "", 0, "!d!t#landscape#creative#halloween#action"],
11002                ["U3BsYXNoLUFydCEtSGFsbG93ZWVu", "ZGVzOThmejVqc29zNC5jbG91ZGZyb250Lm5ldC9ib29tZXJhbmcvZHluYW1pYy93ZWJfZ2FtZS8wMDAwMDAwNS81Mjg5L2Rlc2t0b3BfZ2FtZS9pbmRleC5odG1s", "", 0, "!d!t#landscape#creative#halloween"],
11003            );
11004        }
11005
11006        if (testVer || ((shortLang != "en") && gamePlays > 9 && os == "Desktop" && devorySiteID == "FDC")) { //limited for now
11007            devoryGamesArray.unshift(
11008                //["UmFuZG9tLVJldHJvLVN1cGVyLU5pbnRlbmRv", "eWliYmEuY29tL3JhbmRvbXJldHJvL2luZGV4LXNuZXMuaHRtbA==", "", 0, "!d!g"], //rr-snes
11009                //["UmFuZG9tLVJldHJvLU1lZ2Fkcml2ZQ==", "eWliYmEuY29tL3JhbmRvbXJldHJv", "", 0, "!d!g"], //rr-smd-DONE
11010                //["UmFuZG9tLVJldHJvLUdhbWVib3ktQ29sb3I=", "eWliYmEuY29tL3JhbmRvbXJldHJvL2luZGV4LWdiYy5odG1s", "", 0, "!d!g"], //rr-gbc 
11011                //["WWliYmE=", "eWliYmEuY29tLw==", "", 0, "!d!g"], //Yibba yibba.com/
11012                ["R2FtdWk=", "d3d3LmdhbXVpLmNvbQ==", "", 0, "!direct!d!g"], //Gamui gamui.com ENABLE-DISABLE
11013            );
11014        }
11015
11016        //other pg-1
11017        if (testVer || devorySiteID == "F17") { //231k
11018            devoryGamesArray.push(
11019                ["SGV4YS1EdW5nZW9u", "aGV4YWR1bmdlb24uaDVnYW1lcy51c2VyY29udGVudC5nb29nL3YvMmI5YW5ra29zMzQwOC8=", "", 0, "!d!t!webp#portrait"], //cat Hexa-Dungeon hexadungeon.h5games.usercontent.goog/v/2b9ankkos3408/ SINGLE
11020                ["TWFoam9uZy0zRA==", "bWFoam9uZzNkLmg1Z2FtZXMudXNlcmNvbn
11020RlbnQuZ29vZy92L2ViYTA4MzdlLTQ4NTUtNGJiMi1iNzYyLTVkZDZkODk4MmNhYy8/b3JpZ2luPWh0dHBzJTNBJTJGJTJGZ2FtZXNuYWNrcy5jb20=", "", 0, "!d!T-t!webp#portrait"], //cat Mahjong-3D mahjong3d.h5games.usercontent.goog/v/eba0837e-4855-4bb2-b762-5dd6d8982cac/?origin=https%3A%2F%2Fgamesnacks.com
11021                ["Q3J5c3RhbC1Db2xsYXBzZQ==", "MTI2NzI0NjgyMDI0NzkzNzgyNjIucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!T-t!webp#landscape"], //cat Crystal-Collapse 12672468202479378262.playables.usercontent.goog/v/assets/index.html
11022                ["MjA0OC1GdXNpb24=", "N3Q3OW5lbHE2bHU1MC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi83azNydmdxaXA3c2RnLw==", "", 0, "!d!T-t!webp#portrait#math#puzzle"],
11023                ["U29saXRhaXJlLVNwaWRlcg==", "MTE5MDMzNzQwNDgwODMwMTY0MTIucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!d!T-t!webp#portrait"], //cat Solitaire-Spider 11903374048083016412.playables.usercontent.goog/v/assets/index.html
11024                ["VGhlLUxlZ2VuZGFyeS1UcmlhbHM=", "d3d3LjJkYW5zLmNvbS9nYW1lcy90aGVsZWdlbmRhcnl0cmlhbHMv", "", 0, "!d!T-t#landscape#action"], //the-legendary-trials-new
11025                ["VGhlLU5pZ2h0LUJlZ2lucy1Uby1TaGluZQ==", "d3d3LjJkYW5zLmNvbS9nYW1lcy90aGVuaWdodGJlZ2luc3Rvc2hpbmUv", "", 0, "!d!T-t#landscape#motorsport#platform"], //the-night-begins-to-shine-new
11026                ["UnVuLURvcm90aHk=", "MmRhbnMuY29tL2dhbWVzL3J1bmRvcm90aHkv", "", 0, "!d!t!webp#landscape"], //cat Run-Dorothy 2dans.com/games/rundorothy/
11027                ["TXItQmVhbi1TcGxhc2gtQXJ0", "MmRhbnMuY29tL2dhbWVzL21yYmVhbnNwbGFzaGFydC8=", "", 0, "!d!T-t!so!webp#landscape"], //cat Mr-Bean-Splash-Art 2dans.com/games/mrbeansplashart/
11028                ["QmVhY2h5LUtlZW4=", "MmRhbnMuY29tL2dhbWVzL2JlYWNoeWtlZW4v", "", 0, "!d!T-t!webp!so#portrait"], //cat Beachy-Keen 2dans.com/games/beachykeen/
11029            );
11030        }
11031
11032        //other pg-2
11033        if (testVer || devorySiteID == "FPL") { //30k
11034            devoryGamesArray.push(
11035                ["U2hvcnQtTGlmZQ==", "d3d3Lnl1cmsuY29tL2dhbWVzL3Nob3J0bGlmZS9tLmh0bWw=", "", 0, "!pg!d!T-c#landscape#action#platform"],
11036                ["U2hvcnQtTGlmZS0y", "d3d3Lnl1cmsuY29tL2dhbWVzL3Nob3J0bGlmZTIvbS5odG1s", "", 0, "!pg!d!T-c#landscape#action#platform"],
11037                ["THVja3ktTGlmZQ==", "d3d3Lnl1cmsuY29tL2dhbWVzL2x1Y2t5bGlmZS9tLmh0bWw=", "", 0, "!pg!d!T-c#landscape#action#platform"],
11038                ["U3dvcmRzLUFuZC1TYW5kYWxz", "d3d3Lnl1cmsuY29tL2dhbWVzL3N3b3Jkc2FuZHNhbmRhbHMv", "", 0, "!2pk-l!pg!d!T-c#landscape#combat#strategy"],
11039                ["RGFkLW4nLU1l", "d3d3Lnl1cmsuY29tL2dhbWVzL2RhZG5tZS8=", "", 0, "!2pk-l!pg!d!T-c#landscape#action#adventure#combat"],
11040                ["R0ctTWF5aGVt", "d3d3Lnl1cmsuY29tL2dhbWVzL2dnbWF5aGVtLw==", "", 0, "!pg!2pk-l!d!T-c#landscape#action#combat#platform"],
11041                ["QWdlLU9mLVdhcg==", "d3d3Lnl1cmsuY29tL2dhbWVzL2FnZW9md2FyLw==", "", 0, "!pg!2pk-l!d!T-c#landscape#action#combat#strategy"],
11042                ["R3VuLVBsYXktM0Q=", "MzU2NDc5NDgwMjUyMDc0OTMyOC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!pg!d!t!webp#portrait"], //cat Gun-Play-3D 3564794802520749328.playables.usercontent.goog/v/assets/index.html
11043                ["Um9hZC1DaGFzZS1TaG9vdGVy", "MTQwNzE4MTc4NzAzOTkwMzczMzgucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!pg!d!t!webp#portrait"], //cat Road-Chase-Shooter 14071817870399037338.playables.usercontent.goog/v/assets/index.html
11044                ["RnVuLVJhZ2RvbGwtQ2hhbGxlbmdl", "ODI3NzAwNzA5MjE3MTE2MTI5MC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!pg!d!t!webp#portrait"], //cat Fun-Ragdoll-Challenge 8277007092171161290.playables.usercontent.goog/v/assets/index.html
11045                ["U3RyZWV0LVNob290ZXI=", "MTMyNTg0MjQ0Nzk1MDE5ODIxMzMucGxheWFibGVzLnVzZXJjb250ZW50Lmdvb2cvdi9hc3NldHMvaW5kZXguaHRtbA==", "", 0, "!pg!d!t!webp#portrait"], //cat Street-Shooter 13258424479501982133.playables.usercontent.goog/v/assets/index.html
11046            );
11047        }
11048
11049
11050
11051        //proved !p! from main selection
11052        if (testVer || devorySiteID == "FEX") { //22k
11053            devoryGamesArray.push(
11054                ["SGlnaHdheS1IZXJvZXM=", "ZGVzOThmejVqc29zNC5jbG91ZGZyb250Lm5ldC9ib29tZXJhbmcvZHluYW1pYy93ZWJfZ2FtZS8wMDAwMDAwMy8zODE0L2Rlc2t0b3BfZ2FtZS9pbmRleC5odG1s", "", 0, "!2pk!d!T-p#landscape#action#motorsport#racing"], //lcs
11055                ["RGVlcC1Eb3duLTI=", "MmRhbnMuY29tL2dmLmh0bWw/YUhSdGJDMWpiR0Z6YzJsakxtbDBZMmd1ZW05dVpTOW9kRzFzTHpNM016QTNPRGN2YVc1a1pYZ3VhSFJ0YkE9PSxSR1ZsY0MxRWIzZHVMVEk9", "", 0, "!p!3pk!d!T-c#landscape#platform#retro"],
11056                ["VW5kbw==", "MmRhbnMuY29tL2dmLmh0bWw/YUhSdGJDMWpiR0Z6YzJsakxtbDBZMmd1ZW05dVpTOW9kRzFzTHpJMU5qWTFORGt2YVc1a1pYZ3VhSFJ0YkE9PSxWVzVrYnc9PQ==", "", 0, "!3pk!d!T-t#landscape#platform#puzzle"],
11057                ["QXN0ZXJpeC1BbmQtVGhlLVNlY3JldC1NaXNzaW9u", "MmRhbnMuY29tL3Ntcy9hc3Rlcml4YW5kdGhlc2VjcmV0bWlzc2lvbi8=", "", 0, "!2pk-l!d!T-c!p#landscape#platform#retro"],
11058                ["SmFtZXMtUG9uZC0y", "MmRhbnMuY29tL3Ntcy9qYW1lc3BvbmQyLw==", "", 0, "!2pk-l!d!T-c!p#landscape#adventure#animals#cute#platform#retro"],
11059                ["VGFzdHktTWF0Y2g=", "Mjg4ODEzMDc0MDQ3NjQxODU1Ni5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Tasty-Match 2888130740476418556.playables.usercontent.goog/v/assets/index.html
11060                ["RGlnLUl0", "d3d3LjJkYW5zLmNvbS9nYW1lcy9kaWdpdC8=", "", 0, "!d!T-t!webp!so#landscape#platform#puzzle"], //dig-it-new
11061                ["R29vZHMtU29ydGluZy1NYXRjaC0z", "NzA4ODE4NjAxNjczNzQ5MjI5NS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#landscape"], //cat Goods-Sorting-Match-3 7088186016737492295.playables.usercontent.goog/v/assets/index.html
11062            );
11063        }
11064
11065        //fdc-ext-lesser-played
11066        if (testVer || devorySiteID == "FMX") { //22k
11067            devoryGamesArray.push(
11068                ["VG93ZXItTG9ja2Rvd24=", "d3d3LjJkYW5zLmNvbS9nYW1lcy90b3dlcmxvY2tkb3duLw==", "", 0, "!d!T-t#landscape#platform#puzzle"], //tower-lockdown
11069                ["U3VwZXItTGlxdWlkLVNvY2Nlcg==", "a2RhdGExLmNvbS81MDAwLzIwMjQvc3VwZXItbGlxdWlkLXNvY2Nlci9pbmRleC5odG1s", "", 0, "!d!T-t!webp#portrait"], //cat Super-Liquid-Soccer kdata1.com/5000/2024/super-liquid-soccer/index.html
11070                ["TmluamEtQm95LUFkdmVudHVyZQ==", "d3d3Lnl1cmsuY29tL2dhbWVzL25pbmphYm95YWR2ZW50dXJlLw==", "", 0, "!d!T-t#landscape#action#adventure#platform#shooting"],
11071                ["RnJhbmtlbnN0ZWluLUdv", "MmRhbnMuY29tL2dmLmh0bWw/ZDNkM0xubHZhRzl2ZG5abFlpNWpiMjB2YUhVdloyRnRaUzlHY21GdWEyVnVjM1JsYVc0dloyRnRaUzVvZEcxcyxSbkpoYm10bGJuTjBaV2x1TFVkdg==", "", 0, "!d!T-t#landscape#platform#puzzle#halloween"],
11072                ["V2Fja3ktQmFuZA==", "ZGVzOThmejVqc29zNC5jbG91ZGZyb250Lm5ldC9ib29tZXJhbmcvZHluYW1pYy93ZWJfZ2FtZS8wMDAwMDAwNC80NzA5L2Rlc2t0b3BfZ2FtZS9pbmRleC5odG1s", "", 0, "!d!T-t#landscape#music"],
11073                ["RHVja2J1cmctUXVlc3Q=", "YXNzZXRzLmdhbWVzLmNvcnVzZW50LmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAxOS8wNy9nYW1lLzg0NC9pbmRleC5odG1s", "", 0, "!d!T-tp!nipn!so#landscape#adventure#animals#puzzle"],
11074                ["S251Y2tsZS1IZWFkcw==", "d3d3Lnl1cmsuY29tL2dhbWVzL2tudWNrbGVoZWFkcy8=", "", 0, "!d!T-c!p#landscape#action#platform#retro"],
11075                ["TWlkbmlnaHQtU3RyaWtl", "d3d3Lnl1cmsuY29tL2dhbWVzL21pZG5pZ2h0c3RyaWtlLw==", "", 0, "!d!T-c#landscape#combat#platform#shooting"],
11076                ["QmxvY2stVHJpYW5nbGU=", "d3d3Lnl1cmsuY29tL2dhbWVzL2Jsb2NrdHJpYW5nbGUv", "", 0, "!d!T-t#portrait#puzzle"],
11077                ["VGhlLUlsbHVzaW9uaXN0J3MtRHJlYW0=", "d3d3Lnl1cmsuY29tL2dhbWVzL3RoZWlsbHVzaW9uaXN0c2RyZWFtLw==", "", 0, "!d!T-c#landscape#adventure#platform#puzzle"],
11078                ["TXktUm9sbGVyY29hc3Rlcg==", "d3d3Lnl1cmsuY29tL2dhbWVzL215cm9sbGVyY29hc3Rlci8=", "", 0, "!d!T-c#landscape#creative#puzzle"],
11079                ["QWRkaWN0aW9uLU1pbmk=", "ODcxODY2NTY2MzI1NDE5MTY2NS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Addiction-Mini 8718665663254191665.playables.usercontent.goog/v/assets/index.html
11080                ["RXVnZW5lJ3MtTGlmZQ==", "MmRhbnMuY29tL2dmLmh0bWw/YzJ4dmNHVm5ZVzFsY3pnMkxtZHBkR2gxWWk1cGJ5OWxkV2RsYm1WekxXeHBabVV2LFJYVm5aVzVsSjNNdFRHbG1aUT09", "", 0, "!d!T-c!webp#landscape"], //1-POPULATE: Eugene's-Life slopegames86.github.io/eugenes-life/  |||  2-POPULATE: 2dans.com/gf.html?c2xvcGVnYW1lczg2LmdpdGh1Yi5pby9ldWdlbmVzLWxpZmUv,RXVnZW5lJ3MtTGlmZQ== and main NNN  |||  3-POPULATE-MAIN-DDD
11081                ["Q3J5cHRvZ3JhbS1DaXBoZXI=", "NzAxNTU4MzkyNTQxMTQ3Nzg5My5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Cryptogram-Cipher 7015583925411477893.playables.usercontent.goog/v/assets/index.html
11082                ["TmlnaHQtU2hpbmU=", "d3d3LjJkYW5zLmNvbS9nYW1lcy9uaWdodHNoaW5lLw==", "", 0, "!d!T-t#landscape#action#adventure#combat"], //nightshine-new
11083                ["VGFuZ3JhbS1QdXp6bGU=", "MzhsYnIyM2FrNWhuOC5oNWdhbWVzLnVzZXJjb250ZW50Lmdvb2cvdi8zdjJsZzRzYjJ2M3VnLz9vcmlnaW49aHR0cHMlM0ElMkYlMkZnYW1lc25hY2tzLmNvbQ==", "", 0, "!d!T-t!webp#portrait"], //cat Tangram-Puzzle 38lbr23ak5hn8.h5games.usercontent.goog/v/3v2lg4sb2v3ug/?origin=https%3A%2F%2Fgamesnacks.com
11084                ["UnVmZidzLUNvb2tpZS1DcmVhdG9y", "d3d3LjJkYW5zLmNvbS9nYW1lcy9ydWZmc2Nvb2tpZWNyZWF0b3Iv", "", 0, "!d!t!webp#landscape"], //cat Ruff's-Cookie-Creator www.2dans.com/games/ruffscookiecreator/
11085                ["TWFyYmVsb3VzLU1hcmJsZS1Db2FzdGVy", "MmRhbnMuY29tL2dhbWVzL21hcmJlbG91c21hcmJsZWNvYXN0ZXIv", "", 0, "!d!t!webp#landscape"], //cat Marbelous-Marble-Coaster 2dans.com/games/marbelousmarblecoaster/
11086                ["RGFuZ2VyLUZvcmNlLVRyYWluaW5nLU1pc3Npb25z", "MmRhbnMuY29tL2dhbWVzL2RhbmdlcmZvcmNldHJhaW5pbmdtaXNzaW9ucy8=", "", 0, "!d!t!webp#portrait"], //cat Danger-Force-Training-Missions 2dans.com/games/dangerforcetrainingmissions/
11087                ["TWF6ZQ==", "d3d3Lnl1cmsuY29tL2dhbWVzL21hemUv", "", 0, "!d!T-c#landscape#puzzle"], //maze
11088                ["R29vZC1Nb3JuaW5nIQ==", "d3d3Lnl1cmsuY29tL2dhbWVzL2dvb2Rtb3JuaW5nLw==", "", 0, "!d!T-c#landscape#girls"], //good-morning
11089                ["Q29vay1Tb3Vwcw==", "ODkzNDExNTEzODg4ODQyMTYxNS5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#portrait"], //cat Cook-Soups 8934115138888421615.playables.usercontent.goog/v/assets/index.html //no-sound
11090            );
11091        }
11092
11093        //fdc-ext-lesser-played
11094        if (testVer || devorySiteID == "MRF") { //13k
11095            devoryGamesArray.push(
11096                ["R28tS2FydC1BcnQ=", "ZGVzOThmejVqc29zNC5jbG91ZGZyb250Lm5ldC9ib29tZXJhbmcvZHluYW1pYy93ZWJfZ2FtZS8wMDAwMDAwNS81OTQwLzA5ZWU5ZGI1LWUyODMtNGFiNS04ZjhmLWFjYjUxZTg5YzVjM18xNjI2ODYxNzI4L2luZGV4Lmh0bWw=", "", 0, "!d!t#landscape#action#animals#creative"], //outlinks
11097            );
11098        }
11099
11100        function checkDevoryGamesArray() {
11101
11102            var tempArray;
11103            devoryGamesArray.forEach(myFunction);
11104
11105            function myFunction(value) {
11106                tempArray = value.toString().split(",");
11107                var gameString = atob(tempArray[1]);
11108
11109                if (gameString.indexOf("2bows") > -1)
11110
11111                    console.log("SEARCH: " + tempArray[1] + " EDIT: " + gameString);
11112            }
11113
11114        }
11115
11116        //checkDevoryGamesArray();
11117
11118
11119
11120
11121        if (testVer || shortLang == "en") {
11122            devoryGamesArray.unshift(
11123            );
11124        }
11125
11126        if (devorySiteID == "FDC" && !touchDevice) { //shortLang != "en"
11127            devoryGamesArray.unshift(
11128                //["R2FtdWk=", "Z2FtdWkuY29tLw==", "", 0, "!d!g"], //G-amui g-amui.com/ NOW DIRECT
11129                //["WmVsZ2lybA==", "emVsZ2lybC5jb20v", "", 0, "!d!g"], //Zelgirl zelgirl.com/ NOW DIRECT
11130                //["UGVhbnV0LUJ1dHRlci1KZWxseS1UaW1l", "d3d3LnlvdXR1YmUuY29tL3Nob3J0cy9zNDZyaGUtRFBJOA==", "", 0, "!p!d!t!g"], //YouTube NOW DIRECT
11131            );
11132        }
11133
11134        if (testVer || gfxPerformanceCategory >= 4) {
11135            devoryGamesArray.unshift(
11136                //["R2FtdWktM0QtR2FtZXM=", "Z2FtdWkuY29tLw==", "", 0, "!d!g"], //G-amui-Carreras-En-3D g-amui.com/ NOW DIRECT
11137            );
11138        }
11139
11140        if (testVer || (shortLang == "pt" || shortLang == "ru" || shortLang == "ar" || shortLang == "pl" || shortLang == "id" || shortLang == "hr" || shortLang == "he" || shortLang == "tr" || shortLang == "sk" || shortLang == "ca" || shortLang == "nl")) { //es
11141            devoryGamesArray.unshift(
11142                //["R2FtdWk=", "Z2FtdWkuY29tLw==", "", 0, "!d!g"], //G-amui g-amui.com/ NOW DIRECT
11143                //["SnVlZ29zLUdhbXVp", "Z2FtdWkuY29tLw==", "", 0, "!d!g"], //Juegos-G-amui g-amui.com/ NOW DIRECT 
11144                //["Sm9nb3MtR2FtdWk=", "Z2FtdWkuY29tLw==", "", 0, "!d!g"], //Jogos-G-amui g-amui.com/ NOW DIRECT
11145            );
11146        }
11147
11148        //old-self-host-fac
11149        if (false) {
11150            devoryGamesArray.unshift(
11151                ["U29jY2VyLU9ubGluZQ==", "d3d3LmZyaXZhY2UuY29tL2dhbWVzL3NvY2Nlcm9ubGluZS9pbmRleC5odG1s", "", 0, "!d!t#landscape#action#ball#soccer#sport"], //Soccer-Online www.frivace.com/games/socceronline/index.html
11152                ["U2hvcnRjdXQtUmFjZQ==", "d3d3LmZyaXZhY2UuY29tL2dhbWVzL3Nob3J0Y3V0cmFjZS9pbmRleC5odG1s", "", 0, "!d!t#landscape#x3d#action"], //Shortcut-Race www.frivace.com/games/shortcutrace/index.html
11153                ["UGVuYWx0eS1DaGFsbGVuZ2U=", "d3d3LmZyaXZhY2UuY29tL2dhbWVzL3BlbmFsdHljaGFsbGVuZ2UvaW5kZXguaHRtbA==", "", 0, "!d!t#landscape#action#ball#soccer#sport"], //Penalty-Challenge www.frivace.com/games/penaltychallenge/index.html
11154                ["TWFzdGVyLUNoZWNrZXJz", "d3d3LmZyaXZhY2UuY29tL2dhbWVzL21hc3RlcmNoZWNrZXJzL2luZGV4Lmh0bWw=", "", 0, "!d!t#portrait#board#2player#strategy"], //Master-Checkers www.frivace.com/games/mastercheckers/index.html
11155                ["Q2hlc3M=", "d3d3LmZyaXZhY2UuY29tL2dhbWVzL2NoZXNzL2luZGV4Lmh0bWw=", "", 0, "!d!t#portrait#board#2player#strategy"], //Chess www.frivace.com/games/chess/index.html
11156                ["Q2hhcmdlLUl0", "d3d3LmZyaXZhY2UuY29tL2dhbWVzL2NoYXJnZWl0L2luZGV4Lmh0bWw=", "", 0, "!d!t#portrait#puzzle"], //Charge-It www.frivace.com/games/chargeit/index.html
11157                ["OC1CYWxsLVBybw==", "d3d3LmZyaXZhY2UuY29tL2dhbWVzLzhiYWxscHJvL2luZGV4Lmh0bWw=", "", 0, "!d!t#landscape#ball"], //8-Ball-Pro www.frivace.com/games/8ballpro/index.html
11158                ["NC1Db2xvcnM=", "d3d3LmZyaXZhY2UuY29tL2dhbWVzLzRjb2xvcnMvaW5kZXguaHRtbA==", "", 0, "!d!t#landscape#board#strategy"], //4-Colors www.frivace.com/games/4colors/index.html
11159                ["UGl4ZWwtQXJ0", "d3d3LmZyaXZhY2UuY29tL2dhbWVzL3BpeGVsYXJ0L2luZGV4Lmh0bWw=", "", 0, "!d!T-t#landscape#art#creative"], //Pixel-Art www.frivace.com/games/pixelart/index.html
11160                ["RXJhc2UtT25lLVBhcnQ=", "d3d3LmZyaXZhY2UuY29tL2dhbWVzL2VyYXNlb25lcGFydC9pbmRleC5odG1s", "", 0, "!d!T-t#landscape#cute"], //Erase-One-Part www.frivace.com/games/eraseonepart/index.html
11161                ["Um9wZS1XcmFwcGVy", "d3d3LmZyaXZhY2UuY29tL2dhbWVzL3JvcGV3cmFwcGVyL2luZGV4Lmh0bWw=", "", 0, "!d!t#portrait#puzzle"], //Rope-Wrapper www.frivace.com/games/ropewrapper/index.html
11162                ["UGl4ZWwtUGFpbnRlcg==", "d3d3LmZyaXZhY2UuY29tL2dhbWVzL3BpeGVscGFpbnRlci9pbmRleC5odG1s", "", 0, "!d!T-t#landscape#art"], //Pixel-Painter www.frivace.com/games/pixelpainter/index.html
11163                ["RHJvcC1UaGUtTnVtYmVy", "d3d3LmZyaXZhY2UuY29tL2dhbWVzL2Ryb3B0aGVudW1iZXIvaW5kZXguaHRtbA==", "", 0, "!D-t!T-t#portrait#math"], //Drop-The-Number www.frivace.com/games/dropthenumber/index.html
11164                ["VGljLVRhYy1Ub2UtWFhP", "d3d3LmZyaXZhY2UuY29tL2dhbWVzL3RpY3RhY3RvZXh4by9pbmRleC5odG1s", "", 0, "!d!t#portrait#puzzle#2player"], //Tic-Tac-Toe-XXO www.frivace.com/games/tictactoexxo/index.html
11165
11166                //proved !p! from main selection
11167                ["VGhlLUh1bnQtRm9yLU1vcnRpbW9y", "ZW1lYS5pZnJhbWVkLmNuLmRtdGkuY2xvdWQvY29udGVudC8xNTQwL3RoZS1odW50LWZvci1tb3J0aW1vci9nYW1lL3VrL3RoZS1odW50LWZvci1tb3J0aW1vci0xMzEyMjItZW4uNGFjNjEwYTkvaW5kZXguaHRtbA==", "", 0, "!d!T-t#landscape#adventure#puzzle#rpg"], //LESSER-the-hunt-for-mortimer
11168                ["TWFnaWMtQ2F0LUFjYWRlbXk=", "NTkyMTU5NDg5NzEyMjIwNzYxOC5wbGF5YWJsZXMudXNlcmNvbnRlbnQuZ29vZy92L2Fzc2V0cy9pbmRleC5odG1s", "", 0, "!d!t!webp#landscape#action#art#halloween"], //LESSER-magic-cat
11169                ["VGhlLVBlcmZlY3QtQWR2ZW50dXJl", "aS5jYXJ0b29ubmV0d29yay5jb20vZ2FtZXMvbWFvLW1hby90aGUtcGVyZmVjdC1hZHZlbnR1cmUvaW5kZXguaHRtbA==", "", 0, "!d!T-t#landscape#x3d#adventure#combat"], //LESSER-the-perfect-adventure
11170                ["QmFza2V0LUFuZC1CYWxs", "MmRhbnMuY29tL2dmLmh0bWw/ZHpndWMyNXZhMmxrYnk1amIyMHZaMkZ0WlhNdmFIUnRiRFV2WW1GemEyVjBMV0Z1WkMxaVlXeHNMMmx1WkdWNExtaDBiV3c9LFFtRnphMlYwTFVGdVpDMUNZV3hz", "", 0, "!d!t#landscape#ball#platform"], //LESSER-basket-and-ball
11171                ["VHJvcGh5LUNoYWxsZW5nZQ==", "ZW1lYS5pZnJhbWVkLmNuLmRtdGkuY2xvdWQvY29udGVudC8zMzYvZ3VtYmFsbC1nYW1lcy0tLXRyb3BoeS1jaGFsbGVuZ2UvZ2FtZS91ay90cm9waHljaGFsbGVuZ2Utd2ludGVyLTExMTIyMC1lbi5kZWEzNzRkZC9pbmRleC5odG1s", "", 0, "!d!T-t#landscape#cute#board#2player#misc"], //LESSER-trophy-challenge
11172                ["UGFydHktTWl4", "ZW1lYS5pZnJhbWVkLmNuLmRtdGkuY2xvdWQvY29udGVudC8zMzYvcGFydHktbWl4L2dhbWUvdWsvcGFydHltaXgtMTQwNjIxLWVuLjVhYjdhN2Y1L2luZGV4Lmh0bWw=", "", 0, "!d!T-tp#landscape#misc"], //LESSER-party-mix
11173            );
11174        }
11175
11176        //old-self-host-ftr
11177        if (false) {
11178            devoryGamesArray.unshift(
11179                ["U29jY2VyLU9ubGluZQ==", "d3d3LmZyaXYudHIvZ2FtZXMvc29jY2Vyb25saW5lL2luZGV4Lmh0bWw=", "", 0, "!d!t#landscape#action#ball#soccer#sport"], //Soccer-Online www.friv.tr/games/socceronline/index.html
11180                ["U2hvcnRjdXQtUmFjZQ==", "d3d3LmZyaXYudHIvZ2FtZXMvc2hvcnRjdXRyYWNlL2luZGV4Lmh0bWw=", "", 0, "!d!t#landscape#x3d#action"], //Shortcut-Race www.friv.tr/games/shortcutrace/index.html
11181                ["UGVuYWx0eS1DaGFsbGVuZ2U=", "d3d3LmZyaXYudHIvZ2FtZXMvcGVuYWx0eWNoYWxsZW5nZS9pbmRleC5odG1s", "", 0, "!d!t#landscape#action#ball#soccer#sport"], //Penalty-Challenge www.friv.tr/games/penaltychallenge/index.html
11182                ["TWFzdGVyLUNoZWNrZXJz", "d3d3LmZyaXYudHIvZ2FtZXMvbWFzdGVyY2hlY2tlcnMvaW5kZXguaHRtbA==", "", 0, "!d!t#portrait#board#2player#strategy"], //Master-Checkers www.friv.tr/games/mastercheckers/index.html
11183                ["Q2hlc3M=", "d3d3LmZyaXYudHIvZ2FtZXMvY2hlc3MvaW5kZXguaHRtbA==", "", 0, "!d!t#portrait#board#2player#strategy"], //Chess www.friv.tr/games/chess/index.html
11184                ["Q2hhcmdlLUl0", "d3d3LmZyaXYudHIvZ2FtZXMvY2hhcmdlaXQvaW5kZXguaHRtbA==", "", 0, "!d!t#portrait#puzzle"], //Charge-It www.friv.tr/games/chargeit/index.html
11185                ["OC1CYWxsLVBybw==", "d3d3LmZyaXYudHIvZ2FtZXMvOGJhbGxwcm8vaW5kZXguaHRtbA==", "", 0, "!d!t#landscape#ball"], //8-Ball-Pro www.friv.tr/games/8ballpro/index.html
11186                ["NC1Db2xvcnM=", "d3d3LmZyaXYudHIvZ2FtZXMvNGNvbG9ycy9pbmRleC5odG1s", "", 0, "!d!t#landscape#board#strategy"], //4-Colors www.friv.tr/games/4colors/index.html
11187                ["UGl4ZWwtQXJ0", "d3d3LmZyaXYudHIvZ2FtZXMvcGl4ZWxhcnQvaW5kZXguaHRtbA==", "", 0, "!d!T-t#landscape#art#creative"], //Pixel-Art www.friv.tr/games/pixelart/index.html
11188                ["RXJhc2UtT25lLVBhcnQ=", "d3d3LmZyaXYudHIvZ2FtZXMvZXJhc2VvbmVwYXJ0L2luZGV4Lmh0bWw=", "", 0, "!d!T-t#landscape#cute"], //Erase-One-Part www.friv.tr/games/eraseonepart/index.html
11189                ["Um9wZS1XcmFwcGVy", "d3d3LmZyaXYudHIvZ2FtZXMvcm9wZXdyYXBwZXIvaW5kZXguaHRtbA==", "", 0, "!d!t#portrait#puzzle"], //Rope-Wrapper www.friv.tr/games/ropewrapper/index.html
11190                ["UGl4ZWwtUGFpbnRlcg==", "d3d3LmZyaXYudHIvZ2FtZXMvcGl4ZWxwYWludGVyL2luZGV4Lmh0bWw=", "", 0, "!d!T-t#landscape#art"], //Pixel-Painter www.friv.tr/games/pixelpainter/index.html
11191                ["RHJvcC1UaGUtTnVtYmVy", "d3d3LmZyaXYudHIvZ2FtZXMvZHJvcHRoZW51bWJlci9pbmRleC5odG1s", "", 0, "!d!T-t#portrait#math"], //Drop-The-Number www.friv.tr/games/dropthenumber/index.html
11192                ["VGljLVRhYy1Ub2UtWFhP", "d3d3LmZyaXYudHIvZ2FtZXMvdGljdGFjdG9leHhvL2luZGV4Lmh0bWw=", "", 0, "!d!t#portrait#puzzle#2player"], //Tic-Tac-Toe-XXO www.friv.tr/games/tictactoexxo/index.html
11193            );
11194        }
11195
11196        if (devorySiteID != "FTR") {
11197            devoryGamesArray = fbwgGamesArray.concat(devoryGamesArray);
11198        }
11199
11200        //shuffle
11201        //if (window.location.href.indexOf("test") == -1) {
11202        if (!testVer) {
11203            shuffleArray(devoryGamesArray);
11204        }
11205
11206        if (devorySiteID == "FTR") {
11207            devoryGamesArray = fbwgGamesArray.concat(devoryGamesArray);
11208        }
11209
11210        /////////////////
11211
11212        if (false) { //devorySiteID == "FTR"
11213            devoryGamesArray.push(
11214                ["VmlzdWFsLVB1enpsZQ==", "dHJzaGcvdmlzdWFscHV6emxlL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#puzzle"], //Visual-Puzzle trshg/visualpuzzle/index.html
11215                ["QXZvaWQtTWlzc2lsZXM=", "dHJzaGcvYXZvaWRtaXNzaWxlcy9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#action#combat#retro#shooting"], //Avoid-Missiles trshg/avoidmissiles/index.html
11216                ["QmxvY2stUHV6emxl", "dHJzaGcvYmxvY2twdXp6bGUvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#puzzle"], //Block-Puzzle trshg/blockpuzzle/index.html
11217                ["Q2FyZC1BdHRhY2s=", "dHJzaGcvY2FyZGF0dGFjay9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#2player#card#combat#strategy"], //Card-Attack trshg/cardattack/index.html
11218                ["Q2hlY2tlcnM=", "dHJzaGcvY2hlY2tlcnMvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#2player#board#puzzle#strategy"], //Checkers trshg/checkers/index.html
11219                ["Q2hlc3M=", "dHJzaGcvY2hlc3MvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#2player#board#puzzle#strategy"], //Chess trshg/chess/index.html
11220                ["Q29sb3ItTGluaw==", "dHJzaGcvY29sb3JsaW5rL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#puzzle"], //Color-Link trshg/colorlink/index.html
11221                ["Q29ubmVjdC1Gb3Vy", "dHJzaGcvY29ubmVjdGZvdXIvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#2player#strategy"], //Connect-Four trshg/connectfour/index.html
11222                ["RGVmdXNlLVRoZS1Cb21i", "dHJzaGcvZGVmdXNldGhlYm9tYi9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#action#jobs#puzzle"], //Defuse-The-Bomb trshg/defusethebomb/index.html
11223                ["RG9taW5vZXM=", "dHJzaGcvZG9taW5vZXMvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#2player#board#strategy"], //Dominoes trshg/dominoes/index.html
11224                ["RG93bmhpbGwtU2tp", "dHJzaGcvZG93bmhpbGxza2kvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#action#sport"], //Downhill-Ski trshg/downhillski/index.html
11225                ["RmFybS1GYWN0b3J5", "c2hnL2Zhcm1mYWN0b3J5L2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#animals#food#jobs#strategy"], //Farm-Factory trshg/farmfactory/index.html
11226                ["RmVlZC1Nb25zdGVy", "dHJzaGcvZmVlZG1vbnN0ZXIvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#action#retro"], //Feed-Monster trshg/feedmonster/index.html
11227                ["RmluZC1BbmltYWxz", "dHJzaGcvZmluZGFuaW1hbHMvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#animals#puzzle#cute"], //Find-Animals trshg/findanimals/index.html
11228                ["RmluZC1NZQ==", "dHJzaGcvZmluZG1lL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#puzzle#cute"], //Find-Me trshg/findme/index.html
11229                ["RmluZC1NaW5pLU1l", "dHJzaGcvZmluZG1pbmltZS9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#puzzle#cute"], //Find-Mini-Me trshg/findminime/index.html
11230                ["RmluZC1PYmplY3Rz", "dHJzaGcvZmluZG9iamVjdHMvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#puzzle"], //Find-Objects trshg/findobjects/index.html
11231                ["R2Vtcy1NYXRjaC0z", "dHJzaGcvZ2Vtc21hdGNoMy9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#puzzle#retro#strategy"], //Gems-Match-3 trshg/gemsmatch3/index.html
11232                ["SGVyby1CbGFzdGVy", "dHJzaGcvaGVyb2JsYXN0ZXIvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#action#combat#retro"], //Hero-Blaster trshg/heroblaster/index.html
11233                ["SGV4YWJvYXJk", "dHJzaGcvaGV4YWJvYXJkL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#puzzle"], //Hexaboard trshg/hexaboard/index.html
11234                ["TGlxdWlkLVNvcnQ=", "dHJzaGcvbGlxdWlkc29ydC9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#puzzle#strategy"], //Liquid-Sort trshg/liquidsort/index.html
11235                ["TWVtb3J5LUNoZXNz", "dHJzaGcvbWVtb3J5Y2hlc3MvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#2player#puzzle#board#strategy"], //Memory-Chess trshg/memorychess/index.html
11236                ["TWVyZ2UtQ29mZmVl", "dHJzaGcvbWVyZ2Vjb2ZmZWUvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#puzzle#food#strategy"], //Merge-Coffee trshg/mergecoffee/index.html
11237                ["TWVyZ2UtRGljZQ==", "dHJzaGcvbWVyZ2VkaWNlL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#puzzle#board"], //Merge-Dice trshg/mergedice/index.html
11238                ["UG93ZXItRmxvdw==", "dHJzaGcvcG93ZXJmbG93L2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#puzzle"], //Power-Flow trshg/powerflow/index.html
11239                ["UmFpbmJvdy1CZWFk", "dHJzaGcvcmFpbmJvd2JlYWQvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#puzzle"], //Rainbow-Bead trshg/rainbowbead/index.html
11240                ["UmV2ZXJzaQ==", "dHJzaGcvcmV2ZXJzaS9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#2player#puzzle#strategy"], //Reversi trshg/reversi/index.html
11241                ["U3VwZXItQmxvY2tz", "dHJzaGcvc3VwZXJibG9ja3MvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#puzzle#rero"], //Super-Blocks trshg/superblocks/index.html
11242                ["VGFwLVN1cGVybWFya2V0", "dHJzaGcvdGFwc3VwZXJtYXJrZXQvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#jobs#food#strategy"], //Tap-Supermarket trshg/tapsupermarket/index.html
11243                ["VGljLVRhYy1Ub2U=", "dHJzaGcvdGljdGFjdG9lL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#puzzle#board#2player"], //Tic-Tac-Toe trshg/tictactoe/index.html
11244                ["V2Fyc2hpcA==", "dHJzaGcvd2Fyc2hpcC9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#puzzle#strategy#board"], //Warship trshg/warship/index.html
11245                ["V2FyLVRhY3RpY3M=", "dHJzaGcvd2FydGFjdGljcy9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#puzzle#combat#strategy"], //War-Tactics trshg/wartactics/index.html
11246                ["V2hhY2stQS1Nb2xl", "dHJzaGcvd2hhY2thbW9sZS9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#action#retro"], //Whack-A-Mole trshg/whackamole/index.html
11247                ["V29vZGxhbmQtUm90YXRl", "dHJzaGcvd29vZGxhbmRyb3RhdGUvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#adventure"], //Woodland-Rotate trshg/woodlandrotate/index.html
11248                ["Wm9tYmllLUF0dGFjaw==", "dHJzaGcvem9tYmllYXR0YWNrL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#combat#shooting"], //Zombie-Attack trshg/zombieattack/index.html
11249
11250                //[" xxx ", " xxx ", "", 0, "!ftr!g!d!t#portrait#puzzle"], //Game-Name shg/---/index.html
11251            );
11252        }
11253
11254        /*
11255            catX3d.style.display = "none";
11256            catArt.style.display = "none";
11257            catBall.style.display = "none";
11258            catClick.style.display = "none";
11259            catCreative.style.display = "none";
11260            catDressup.style.display = "none";
11261            catGirls.style.display = "none";
11262            catKiddies.style.display = "none";
11263            catMisc.style.display = "none";
11264            catMotorsport.style.display = "none";
11265            catMusic.style.display = "none";
11266            catPlatform.style.display = "none";
11267            catRacing.style.display = "none";
11268            catRunning.style.display = "none";
11269            catSoccer.style.display = "none";
11270            catLandscape.style.display = "none";
11271            catPortrait.style.display = "none";
11272        */
11273
11274        /////////////////
11275
11276        if (false) { //devorySiteID == "FAC"
11277            devoryGamesArray.push(
11278                ["VmlzdWFsLVB1enpsZQ==", "c2hnL3Zpc3VhbHB1enpsZS9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#puzzle"], //Visual-Puzzle shg/visualpuzzle/index.html
11279                ["QXZvaWQtTWlzc2lsZXM=", "c2hnL2F2b2lkbWlzc2lsZXMvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#action#combat#retro#shooting"], //Avoid-Missiles shg/avoidmissiles/index.html
11280                ["QmxvY2stUHV6emxl", "c2hnL2Jsb2NrcHV6emxlL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#puzzle"], //Block-Puzzle shg/blockpuzzle/index.html
11281                ["Q2FyZC1BdHRhY2s=", "c2hnL2NhcmRhdHRhY2svaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#2player#card#combat#strategy"], //Card-Attack shg/cardattack/index.html
11282                ["Q2hlY2tlcnM=", "c2hnL2NoZWNrZXJzL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#2player#board#puzzle#strategy"], //Checkers shg/checkers/index.html
11283                ["Q2hlc3M=", "c2hnL2NoZXNzL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#2player#board#puzzle#strategy"], //Chess shg/chess/index.html
11284                ["Q29sb3ItTGluaw==", "c2hnL2NvbG9ybGluay9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#puzzle"], //Color-Link shg/colorlink/index.html
11285                ["Q29ubmVjdC1Gb3Vy", "c2hnL2Nvbm5lY3Rmb3VyL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#2player#strategy"], //Connect-Four shg/connectfour/index.html
11286                ["RGVmdXNlLVRoZS1Cb21i", "c2hnL2RlZnVzZXRoZWJvbWIvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#action#jobs#puzzle"], //Defuse-The-Bomb shg/defusethebomb/index.html
11287                ["RG9taW5vZXM=", "c2hnL2RvbWlub2VzL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#2player#board#strategy"], //Dominoes shg/dominoes/index.html
11288                ["RG93bmhpbGwtU2tp", "c2hnL2Rvd25oaWxsc2tpL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#action#sport"], //Downhill-Ski shg/downhillski/index.html
11289                ["RmFybS1GYWN0b3J5", "c2hnL2Zhcm1mYWN0b3J5L2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#animals#food#jobs#strategy"], //Farm-Factory shg/farmfactory/index.html
11290                ["RmVlZC1Nb25zdGVy", "c2hnL2ZlZWRtb25zdGVyL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#action#retro"], //Feed-Monster shg/feedmonster/index.html
11291                ["RmluZC1BbmltYWxz", "c2hnL2ZpbmRhbmltYWxzL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#animals#puzzle#cute"], //Find-Animals shg/findanimals/index.html
11292                ["RmluZC1NZQ==", "c2hnL2ZpbmRtZS9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#puzzle#cute"], //Find-Me shg/findme/index.html
11293                ["RmluZC1NaW5pLU1l", "c2hnL2ZpbmRtaW5pbWUvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#puzzle#cute"], //Find-Mini-Me shg/findminime/index.html
11294                ["RmluZC1PYmplY3Rz", "c2hnL2ZpbmRvYmplY3RzL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#puzzle"], //Find-Objects shg/findobjects/index.html
11295                ["R2Vtcy1NYXRjaC0z", "c2hnL2dlbXNtYXRjaDMvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#puzzle#retro#strategy"], //Gems-Match-3 shg/gemsmatch3/index.html
11296                ["SGVyby1CbGFzdGVy", "c2hnL2hlcm9ibGFzdGVyL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#action#combat#retro"], //Hero-Blaster shg/heroblaster/index.html
11297                ["SGV4YWJvYXJk", "c2hnL2hleGFib2FyZC9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#puzzle"], //Hexaboard shg/hexaboard/index.html
11298                ["TGlxdWlkLVNvcnQ=", "c2hnL2xpcXVpZHNvcnQvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#puzzle#strategy"], //Liquid-Sort shg/liquidsort/index.html
11299                ["TWVtb3J5LUNoZXNz", "c2hnL21lbW9yeWNoZXNzL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#2player#puzzle#board#strategy"], //Memory-Chess shg/memorychess/index.html
11300                ["TWVyZ2UtQ29mZmVl", "c2hnL21lcmdlY29mZmVlL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#puzzle#food#strategy"], //Merge-Coffee shg/mergecoffee/index.html
11301                ["TWVyZ2UtRGljZQ==", "c2hnL21lcmdlZGljZS9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#puzzle#board"], //Merge-Dice shg/mergedice/index.html
11302                ["UG93ZXItRmxvdw==", "c2hnL3Bvd2VyZmxvdy9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#puzzle"], //Power-Flow shg/powerflow/index.html
11303                ["UmFpbmJvdy1CZWFk", "c2hnL3JhaW5ib3diZWFkL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#puzzle"], //Rainbow-Bead shg/rainbowbead/index.html
11304                ["UmV2ZXJzaQ==", "c2hnL3JldmVyc2kvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#2player#puzzle#strategy"], //Reversi shg/reversi/index.html
11305                ["U3VwZXItQmxvY2tz", "c2hnL3N1cGVyYmxvY2tzL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#puzzle#rero"], //Super-Blocks shg/superblocks/index.html
11306                ["VGFwLVN1cGVybWFya2V0", "c2hnL3RhcHN1cGVybWFya2V0L2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#jobs#food#strategy"], //Tap-Supermarket shg/tapsupermarket/index.html
11307                ["VGljLVRhYy1Ub2U=", "c2hnL3RpY3RhY3RvZS9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#puzzle#board#2player"], //Tic-Tac-Toe shg/tictactoe/index.html
11308                ["V2Fyc2hpcA==", "c2hnL3dhcnNoaXAvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#puzzle#strategy#board"], //Warship shg/warship/index.html
11309                ["V2FyLVRhY3RpY3M=", "c2hnL3dhcnRhY3RpY3MvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#puzzle#combat#strategy"], //War-Tactics shg/wartactics/index.html
11310                ["V2hhY2stQS1Nb2xl", "c2hnL3doYWNrYW1vbGUvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#action#retro"], //Whack-A-Mole shg/whackamole/index.html
11311                ["V29vZGxhbmQtUm90YXRl", "c2hnL3dvb2RsYW5kcm90YXRlL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#adventure"], //Woodland-Rotate shg/woodlandrotate/index.html
11312                ["Wm9tYmllLUF0dGFjaw==", "c2hnL3pvbWJpZWF0dGFjay9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#combat#shooting"], //Zombie-Attack shg/zombieattack/index.html
11313                //
11314                ["Q2hhbmdlLVdvcmQ=", "c2hnL2NoYW5nZXdvcmQvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#puzzle#word"], //Change-Word shg/changeword/index.html
11315                ["Q2lyY2xlLVdvcmQ=", "c2hnL2NpcmNsZXdvcmQvaW5kZXguaHRtbA==", "", 0, "!ftr!g!d!t#portrait#puzzle#word"], //Circle-Word shg/circleword/index.html
11316                ["R3Vlc3MtV29yZA==", "c2hnL2d1ZXNzd29yZC9pbmRleC5odG1s", "", 0, "!ftr!g!d!t#portrait#puzzle#word"], //Guess-Word shg/guessword/index.html
11317                ["SGV4YS1Xb3Jk", "c2hnL2hleGF3b3JkL2luZGV4Lmh0bWw=", "", 0, "!ftr!g!d!t#portrait#puzzle#word"], //Hexa-Word shg/hexaword/index.html
11318
11319                //[" xxx ", " xxx ", "", 0, "!ftr!g!d!t#portrait#puzzle"], //Game-Name shg/---/index.html
11320            );
11321        }
11322
11323
11324        //last
11325        if (testVer) {
11326            devoryGamesArray.push(
11327                //["64-u", "64-u", "", 0, "!d!t!webp#landscape"], //Game-Name www.yurk.com/games/xxx/
11328            );
11329
11330        }
11331
11332
11333
11334        //any adjustments...
11335
11336        function consoleBreak() {
11337
11338            for (let i = 0; i < 9; i++) {
11339                console.log(" ");
11340            }
11341            for (let i = 0; i < 5; i++) {
11342                console.log("##############");
11343            }
11344            for (let i = 0; i < 9; i++) {
11345                console.log(" ");
11346            }
11347
11348        }
11349
11350        consoleBreak();
11351
11352        //var devoryGamesArrayFinal;
11353
11354        function showDevoryGames(selectedGamesCategory) {
11355
11356            console.log("********************** selectedGamesCategory: " + selectedGamesCategory);
11357
11358            var devoryGamesArrayFinal = devoryGamesArray;
11359
11360            console.log("=== devoryGamesArrayFinal === " + devoryGamesArrayFinal.length)
11361
11362            var devoryGamesOutput = "";
11363            var footerColor = "";
11364            var link = "";
11365            var gameThumbLoadingNumber = 0;
11366            var devoryDefs = "";
11367            var devoryDefsPass = "";
11368            var devoryURLVarTemp = "";
11369            var devoryURLArrayTemp1 = "";
11370            var devoryURLArrayTemp2 = "";
11371            var thumbsPath = "z/thumbs/devorygames/";
11372            var devoryGamesCounter = 0;
11373            var topStrap = "";
11374            var lastElementIndex = 0;
11375
11376            if (devorySiteID != "FDC") {
11377                thumbsPath = "thumbs/";
11378            }
11379
11380            var i;
11381            for (i = 0; i < devoryGamesArrayFinal.length; i++) {
11382
11383                if ((debug || testVer) && true) {
11384
11385                    console.log(" ");
11386
11387                    devoryURLVarTemp = atob(devoryGamesArrayFinal[i][1]);
11388
11389                    console.log("Devory decoded name: " + atob(devoryGamesArrayFinal[i][0]) + " - " + devoryGamesArrayFinal[i][0]);
11390                    console.log("Devory decoded URL: " + devoryURLVarTemp);
11391
11392                    //if url contains 2dans, will need further work...
11393
11394                    if (devoryURLVarTemp.indexOf("/gf.") > -1) {
11395                        //console.log("Is gf.html ...");
11396
11397                        //console.log(devoryURLVarTemp + " " + devoryGamesArrayFinal[i][0]);
11398
11399                        devoryURLArrayTemp1 = devoryURLVarTemp.split("?");
11400
11401                        //console.log("devoryURLArrayTemp1 " + devoryURLArrayTemp1);
11402
11403                        devoryURLArrayTemp2 = devoryURLArrayTemp1[1].split(",");
11404
11405                        //console.log("devoryURLArrayTemp2 " + devoryURLArrayTemp2);
11406
11407                        console.log("Devory twice decoded URL: " + atob(devoryURLArrayTemp2[0]) + " " + atob(devoryGamesArrayFinal[i][0]) + " " + devoryGamesArrayFinal[i][0]);
11408
11409                        //devoryURLVarTemp = 
11410
11411                    }
11412
11413                    //console.log(devoryURLArrayTemp[1]);
11414                }
11415
11416
11417
11418                //lastElementIndex =  devoryGamesArrayFinal[i][devoryGamesArrayFinal[i].length - 1];
11419
11420                lastElementIndex = devoryGamesArrayFinal[i].length - 1;
11421                console.log(lastElementIndex);
11422
11423
11424                //devory desfs are always taken from the last element, regardless of array elements length
11425                devoryDefs = devoryGamesArrayFinal[i][lastElementIndex];
11426
11427                //console.log(devoryDefs);
11428
11429
11430
11431                if (devoryDefs.indexOf(selectedGamesCategory) > -1 || selectedGamesCategory == "all") {
11432
11433                    console.log("!!!!!!!!!!!!!!!!!!!!!!!!!!" + atob(devoryGamesArrayFinal[i][1]));
11434
11435                    if (devoryDefs.indexOf("!so") == -1 || gamePlays > 1 || testVer) {
11436
11437                        if (((devoryDefs.indexOf("!2pk") > -1 || devoryDefs.indexOf("!pg") > -1) && showPack2) || (devoryDefs.indexOf("!3pk") > -1 && showPack3) || (devoryDefs.indexOf("!2pk") == -1 && devoryDefs.indexOf("!3pk") == -1 && devoryDefs.indexOf("!pg") == -1) || devorySiteID != "FDC" || testVer) {
11438
11439                            if ((shortLang == "en") || (devoryDefs.indexOf("!en") == -1 && shortL
11439ang != "en")) {
11440
11441                                if ((devoryDefs.indexOf("!d") > -1 && !touchDevice) || (devoryDefs.indexOf("!t") > -1 && touchDevice) || testVer) {
11442
11443                                    if (devoryDefs.indexOf("!fgo") == -1 || (devoryDefs.indexOf("!fgo") > -1 && gfxPerformanceCategory >= 3)) {
11444
11445                                        //if(atob(devoryGamesArrayFinal[i][1]).indexOf("friv.com") > -1) {
11446                                        //   console.log("QQQ: This is a FDC game: " + atob(devoryGamesArrayFinal[i][1]));
11447                                        //   }
11448
11449                                        if ((atob(devoryGamesArrayFinal[i][1]).indexOf("friv.com") == -1) || canAccessFDC) { //if game is not on FDC or 
11450
11451                                            if (devoryDefs.indexOf("!nipn") > -1 && os == "iPadNew") {
11452                                                //no output for new ipad
11453                                            } else {
11454
11455                                                var imageEnding = "150x150Min.png";
11456
11457                                                var secondImgClass = ""; //apply pixelated class to smaller images
11458
11459                                                if (devoryDefs.indexOf("!g") > -1) {
11460                                                    imageEnding = ".gif";
11461                                                }
11462
11463                                                if (devoryDefs.indexOf("!webp") > -1) {
11464                                                    imageEnding = "150x150Min.webp";
11465                                                }
11466
11467                                                if (devoryDefs.indexOf("!p") > -1) {
11468                                                    secondImgClass = "pixelated";
11469                                                }
11470
11471                                                footerColor = "Clear";
11472
11473                                                //console.log("gamePlays: " + gamePlays);
11474                                                //console.log("footerColor before: " + footerColor);
11475
11476                                                if (devorySiteID == "FDC") {
11477
11478                                                    if ((gamePlays - 4 < startToShowPack2 || testVer) && (devoryDefs.indexOf("!pg") > -1 || devoryDefs.indexOf("!2pk") > -1)) {
11479                                                        footerColor = "Cyan";
11480                                                    }
11481
11482                                                    if ((gamePlays - 4 < startToShowPack3 || testVer) && (devoryDefs.indexOf("!3pk") > -1)) {
11483                                                        footerColor = "Yellow";
11484                                                    }
11485
11486                                                    if ((specialPeriod == "halloween" || testVer) && devoryDefs.indexOf("#halloween") > -1) {
11487                                                        footerColor = "Orange";
11488                                                    }
11489
11490                                                }
11491
11492                                                devoryDefsPass = "#";
11493
11494                                                if (devoryDefs.indexOf("!pg") > -1) {
11495                                                    devoryDefsPass = "!pg";
11496                                                }
11497
11498                                                if (devoryDefs.indexOf("!en") > -1) {
11499                                                    devoryDefsPass += "!en";
11500                                                }
11501
11502                                                //if (devoryDefs.length > 10) {
11503                                                //    devoryDefsPass = "#";
11504                                                //}
11505
11506                                                link = "play.html?" + devoryGamesArrayFinal[i][0] + "," + devoryGamesArrayFinal[i][1] + "," + devoryDefsPass;
11507
11508                                                if (link.indexOf("R2FtdWk=") > -1) {
11509                                                    link = "https://www.gamui.com/";
11510                                                }
11511
11512                                                if (link.indexOf("WmVsZ2lybA==") > -1) {
11513                                                    link = "https://www.zelgirl.com/";
11514                                                }
11515
11516                                                if (devoryDefs.indexOf("!direct") > -1) {
11517                                                    link = "https://" + window.atob(devoryGamesArrayFinal[i][1]);
11518                                                }
11519
11520                                                if (devoryDefs.indexOf("!ftr") > -1) {
11521                                                    link = "https://www.friv.tr/" + window.atob(devoryGamesArrayFinal[i][1]);
11522                                                }
11523
11524                                                if (devoryDefs.indexOf("!fac") > -1) {
11525                                                    link = "https://www.frivace.com/" + window.atob(devoryGamesArrayFinal[i][1]);
11526                                                }
11527
11528                                                if (debug || testVer) {
11529                                                    console.log("Devory link: " + link);
11530                                                }
11531
11532                                                devoryGamesOutput += "<div class=gameThumbContainerMini> <div class=gameThumbShine></div> <div class=gameThumbGenColor" + footerColor + ">" + window.atob(devoryGamesArrayFinal[i][0]).replace(/-/g, " ") + "</div><a href='" + link + "'><img width='150' height='150' loading='lazy' class='gameThumb " + secondImgClass + "' src='" + thumbsPath + window.atob(devoryGamesArrayFinal[i][0]).replace(/,/g, "").replace(/-/g, "").replace(/!/g, "").replace(/[?=]/g, "").replace(/'/g, "").replace(/ñ/g, "n").replace(/\./g, "").toLowerCase() + imageEnding + "'onmouseover='japSound()' alt='" + window.atob(devoryGamesArrayFinal[i][0]) + "'></a></div>";
11533
11534                                                devoryGamesCounter++;
11535
11536                                            } //iPadNew check
11537
11538                                        } //can access FDC
11539
11540                                    } //fgo
11541
11542                                } //device check
11543
11544                            } //en-language check
11545
11546                        } //nostalgia games etc. (mostly old emulated Flash games, games 20+ years old)
11547
11548                    } //so
11549
11550                } //categories
11551
11552            }
11553
11554            devoryGamesContent.innerHTML = devoryGamesOutput;
11555
11556            console.log("ccccccccccccc: " + selectedGamesCategory);
11557
11558
11559
11560
11561            if (devorySiteID != "FDC") { //for devory sites
11562
11563                console.log("devory sites only");
11564
11565                topStrap = textMenuGS.topWelcome;
11566
11567                if (selectedGamesCategory != "all") {
11568                    topStrap = textMenuGS.categoriesFound;
11569                }
11570
11571                gamesBlockHeader.innerHTML = topStrap.replace(/www.frivsite.com/g, devorySiteName).replace(/9999/g, devoryGamesCounter);
11572
11573                if (devoryGamesCounter == 0) {
11574                    gamesBlockHeader.innerHTML = textMenuGS.sorryNoGames;
11575                }
11576
11577                gamesBlockHeader.scrollIntoView({
11578                    block: 'start',
11579                    behavior: 'smooth'
11580                });
11581
11582            }
11583
11584
11585
11586        } //end devory function
11587
11588
11589        showDevoryGames("all");
11590
11591        consoleBreak();
11592
11593
11594
11595
11596
11597
11598
11599        //CHECK URLS
11600        ////////////
11601
11602        function getImageDimensions(imageUrl) {
11603            return new Promise((resolve, reject) => {
11604                const img = new Image();
11605
11606                img.onload = () => {
11607                    resolve({
11608                        width: img.width
11609                    });
11610                };
11611
11612                img.onerror = (error) => {
11613                    reject(error);
11614                };
11615
11616                img.src = "https://" + window.atob(imageUrl);
11617            });
11618        }
11619
11620        async function checkImageDimensions() { //async function checkImageDimensions() {
11621
11622            console.log("£££ starting...");
11623            //console.log("£££ " + devoryGamesArray);
11624
11625            for (const [gameName, gameURL, imageUrl, expectedWidth, gameDefs] of devoryGamesArray) {
11626
11627                //console.log("£££ loop begin...");
11628
11629                // Skip blank URLs
11630                if (!imageUrl) {
11631                    //console.log(`£££ Skipping blank URL for ${ gameName }`);
11632                    continue;
11633                }
11634
11635                try {
11636                    const dimensions = await getImageDimensions(imageUrl);
11637                    const actualWidth = dimensions.width;
11638                    const color = actualWidth === expectedWidth ? "lime" : "orange";
11639
11640                    console.log(`£££ Game: ${window.atob(gameName)} `);
11641                    console.log(`£££ Expected Width: ${expectedWidth} `);
11642                    console.log(`£££ Actual Width: ${actualWidth} (color: ${color})`);
11643
11644                    // Update monitorOutputDiv (assuming you have an element with ID "monitorOutputDiv")
11645                    monitorOutputDiv.innerHTML += `< span class="${color}" > ${window.atob(gameName)} <span>`;
11646                } catch (error) {
11647                    console.error(`£££ Error loading image: ${imageUrl}`, error);
11648                    //monitorOutputDiv.innerHTML += `<span class="red">${window.atob(gameName)} FAIL / 404: ${imageUrl}<span> `;
11649                    monitorOutputDiv.innerHTML += `<span class="red">404-FAIL: ${window.atob(gameName)}<span>`;
11650                }
11651
11652                monitorOutputDiv.innerHTML += `<span class="green">  - - - </span>`;
11653            }
11654        }
11655
11656
11657
11658
11659
11660        function checkAllImages() {
11661
11662            document.body.innerHTML = "<div id=monitorOutputDiv></div>";
11663            document.documentElement.style.height = '100%';
11664            document.body.style.height = '100%';
11665            document.body.style.backgroundImage = 'none';
11666            document.body.style.backgroundColor = "#003300";
11667
11668            checkImageDimensions();
11669
11670        }
11671
11672
11673
11674
11675        console.log("=== devory.js END");
11676
11677        //test categories
11678        //setTimeout(function() {
11679        //    showDevoryGames("#sport");
11680        //}, 1000);
11681
11682        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
11683        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
11684        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
11685
11686        //DEVORY END
11687        /////////////
11688
11689
11690
11691
11692
11693
11694
11695
11696
11697
11698
11699
11700
11701
11702
11703
11704
11705
11706
11707
11708
11709
11710
11711
11712
11713
11714
11715
11716
11717
11718
11719
11720
11721
11722
11723
11724
11725        //DESKTOP PROMO
11726        ///////////////
11727
11728        //if (touchDevice && shortLang == "en") {
11729
11730        if (false) {
11731            desktopPrmo.style.display = "block";
11732        }
11733
11734        //SCHOOL SPECIFIC
11735        /////////////////
11736
11737        var schoolTime = false;
11738        if ((hour > 13 && hour < 17) && (day > 0 && day < 6) && (month < 6 || month > 7)) { //afternoons, mon-fri, not july and august (for more educational stuff)
11739            schoolTime = true;
11740        }
11741
11742        //SITES PROMOTION
11743        /////////////////
11744
11745        const promoSites = [
11746            ["frivace.com", gestureType + " Here For Friv Ace"], //More Games
11747            ["frivmax.com", gestureType + " Here For Friv Max"],
11748            ["frivextra.com", gestureType + " Here For Friv Extra"],
11749            ["frivplus.com", gestureType + " Here For Friv Plus"],
11750            ["morefriv.com", gestureType + " Here For More Friv"],
11751            ["friv.tr", "Daha harika oyunlar: friv.tr"]
11752        ];
11753
11754        //if (!isSchool && gamePlays > 3 && (day == 6 || day == 2)) { //sat-tues
11755        if (false) { //disabled for now
11756
11757            var chosenSite = Math.floor(userRandom / 20); //integers 0 - 4;
11758
11759            if (shortLang == "tr") {
11760                chosenSite = 5;
11761            }
11762
11763            topPromoButtonsContainer.style.display = "block";
11764            topPromoButtonsContainer.style.fontSize = "3vmin";
11765
11766            //topPromoButton1.style.animationPlayState = "running";
11767            topPromoButton1.style.color = "gold";
11768
11769            topPromoButton1.innerText = promoSites[chosenSite][1];
11770
11771            topPromoButton1.addEventListener('click', function (e) {
11772                window.location.assign("https://www." + promoSites[chosenSite][0]);
11773            });
11774
11775        }
11776
11777        //BREAKPOINT
11778        ////////////
11779        if (breakPoint) {
11780            gtag('event', 'Breakpoint 17', {
11781                'event_category': 'Debug',
11782                'event_label': 'Breakpoints'
11783            });
11784        }
11785        ////////////
11786        ////////////
11787
11788
11789        //INACTIVE TITLE CHANGER
11790        ////////////////////////
11791        var defaultTitlesCounter = -15;
11792        var titlesCounter = defaultTitlesCounter;
11793
11794        if (debug) {
11795            titlesCounter = -1;
11796        }
11797
11798        var chosenTitles = 0;
11799        var tilesSequenceStarted = false;
11800        var frivTitle = "Friv®";
11801        var titlePrefix = "";
11802
11803        if (isSchool) {
11804            frivTitle = "Friv4School";
11805        }
11806
11807        var documentTitlesArray =
11808
11809            [
11810                ["😃⏩💩⏩⏩⏩😲", "😃⏩⏩💩⏩⏩😲", "😃⏩⏩⏩💩⏩😲", "😃⏩⏩⏩⏩💩😲", "😲⏪⏪⏪💩⏪😃", "😲⏪⏪💩⏪⏪😃", "😲⏪💩⏪⏪⏪😃", "😲💩⏪⏪⏪⏪😃"],
11811
11812                ["😢 I'm kinda lonely!", "😃 You there?!", "😃 Please play with me!", "😳 Come back!", "🙂 Please?!", "🙂 Pretty please?!", "🙂 Pretty pretty please?!", "🙂 With sugar on top..?", "😲 Hellooooooo!", "😃 You still there?", "😃 No problem.", "😃 It's OK.", "😃 I can just...", "🥳 ...entertain myself!", "😃 Maybe play soccer.", "🤠 Dress up a bit.", "😜 Stick my tongue out.", "😌 Have a nap.", "😃 Play some tunes.", "😃 Do some star jumps.", "😣 I always struggle...", "😣 ...with those star jumps.", "😃 Heh. Guess what...", "😃 My mummy always says...", "😃 ...that when I grow up...", "😃 ...I could be...", "😃 ...an actor!", "😃 I'm quite chatty.", "😃 And enthusiastic.", "😃 And I can always...", "😃 ...remember my lines ...", "😃 ...in the school play.", "😃 She beams and says...", "😃 ...I can show a really...", "😆 ...wide range of emotions.", "🥰 I love my mummy.", "😃 Anyway, don't worry.", "😃 I'll be right here...", "😃 ...when you get back.", "😃 ...", "😃 Heh. Did you...", "😃 ...ever wonder...", "😃 ...what it's like...", "😃 ...to be an emoji?", "😃 Personally I like it.", "😃 Lots of chill time.", "😃 Plenty of friends.", "😃 To be honest...", "😃 ...I try to avoid...", "😡 ...the angry ones...", "😃 ...and stay upwind...", "😃 ...of the poo...", "😃 ...but there are...", "😃 ...lots of nice...", "😃 ...animals to cuddle...", "😃 ...sports to play...", "😃 ...musical instruments...", "😃 ...holiday destinations...", "😃 ...and all the...", "😃 ...fast food...", "😃 ...you can eat!", "😃 To be frank...", "😵 ...I'm surprised...", "🤓 ...you're still reading...", "😃 ...this stuff because...", "😃 ...the games...", "😃 ...really are...", "😃 ...way more fun!", "😃 Once my sister and I...", "😃 ...were in the bath...", "😃 ...after making mud pies...", "😃 ...in the garden...", "😃 ...and she said that...", "😃 ...I had...", "😃 \"Verbal Diarrhoea\"", "😃 ...but because I had...", "😃 ...water in my ears...", "😃 ...I thought she said...", "😃 \"Purple Diarrhoea!\"", "😂 That made me laugh...", "😃 ...so hard, some...", "😃 ...sick came out of...", "😂 ...my nose!", "🥰 I love my sister.", "🥰 And bath times.", "😃 Actually the world...", "😃 ...needs more love.", "😁 I like to spread it.", "😃 So here's a kiss...", "😘 ...just for you!", "😇 Peace!", "😃 Heh. You know...", "😃 ...I don't want...", "🥰 ...to pour my heart out...", "😃 ...or anything...", "😃 ...but I think...", "😃 ...that maybe..."],
11813
11814                ["😃 Wow!", "😃 I'm sure that...", "😃 ...you've been...", "😃 ...doing great on...", "😃 ...these games.", "😃 It looks like you’re...", "😃 ...taking a break for...", "😃 ...a minute or..", "😃 ...two though.", "😊 That’s cool.", "😃 I was just taking...", "😃 ...a toilet break.", "😃 Sorry. That’s...", "😃 ...probably too...", "😊 ...much information.", "😃 But I’m back now.", "😃 You’re so lucky...", "😃 ...you don’t live...", "😃 ...with my sister.", "😃 Whenever she does...", "😃 ...some plops...", "😃 ...in the toilet...", "😃 ...before flushing...", "😃 ...she looks at them...", "😃 ...and waves...", "😃 ...and says cheerfully...", "😃 \"See ya later!\"", "😃 But I really hope...", "😃 ...we don’t ever...", "😃 ...see them later.", "🤮 That would be horrid.", "😃 She’s six and...", "😃 ...a half now...", "😃 ...and there would...", "😃 ...be a lot of them. 💩💩💩", "😃 Actually, when I...", "😃 ...said I was taking...", "😃 ...a toilet break...", "😃 ...I was kinda lying.", "😇 Because I’m little...", "😃 ...I mostly still...", "😃 ...use my potty.", "😃 I had to use...", "😃 ...the other sink...", "😃 ...to wash my hands...", "😃 ...because my daddy...", "😃 ...was trying to...", "😃 ...unblock the sink...", "😃 ...in the bathroom.", "😃 I saw him pouring...", "😃 ...some bright blue...", "😃 ...liquid down it.", "😃 He said it would...", "😃 ...dissolve whatever was...", "😃 ...down there causing...", "😃 ...the blockage.", "😃 That stuff...", "😮 ...is amazing!", "😃 Because I must...", "😃 ...have dropped...", "😃 ...at least four...", "😃 ...toothbrushes...", "😃 ...down there.", "😃 I always brush...", "😃 ...twice a day...", "😃 ...and I don’t eat...", "😃 ...many sugary things.", "😃 That’s why...", "😃 ...my teeth are...", "😁 ...so white and...", "😃 ...I don’t have...", "😃 ...any fillings.", "😃 Actually, my daddy...", "😃 ...is usually the...", "😃 ...one in our family...", "😃 ...who cleans things.", "😃  One time he...", "😃 ...had to clean...", "😃 ...my mummy’s phone...", "😃 ...after she said...", "😃 ...it went in my potty.", "😃 I didn’t know...", "😃 ...that phones...", "😃 ...needed to go.", "😃 Really, I think...", "😃 ...we should all...", "😃 ...have our own...", "😃 ...personal potties.", "😃 By the way...", "😃 ...do you think that...", "😃 ...I chat too much?", "😃 Some people say...", "😃 ...I should be...", "😃 ...on the radio.", "😃 Or maybe...", "😃 ...on the stage!", "😃 I can tell you...", "😃 ...about that...", "😃 ...another time...", "😃 ...but right now...", "😃 ...I should like to...", "🥳 ...warmly congratulate...", "😃 ...you and say..."],
11815
11816                ["😃 Greetings! ", "😃 I saw that...", "😃 ...you had stopped...", "😃 ...playing on Friv...", "😃 ...and I thought you...", "😃 ...would probably be...", "☹️ ...quite lonely now...", "😃 ...and would maybe...", "😃 ...like a little...", "😃 chit chat.", "😃 From me.", "😃 Definitely.", "😃 You see...", "😃 ...that’s mostly what...", "😃 ...I like to do.", "😃 My sister...", "😃 ...complains that I...", "😃 ...never listen to her...", "😃 ...or something...", "😃 ...like that.", "😃 In fact...", "😃 ...when I grow up...", "😃 ...I want to be...", "😃 ...on 
11816stage!", "😃 I would be great...", "😃 ...up there...", "😃 ...in the lights!", "😃 I have been a...", "😃 ...happy chatty emoji...", "😃 ...all my life...", "😃 ...and by now I...", "😃 ...feel I'm pretty...", "😃 ...good at it.", "😃 So my next...", "😃 ...challenge is...", "😃 ...to be a comedian!", "😃 I have already...", "😃 ...put together a...", "😃 ...little routine.", "😃 It would REALLY help...", "😃 ...if I could try...", "😃 ...some of the jokes...", "😃 ...out on you.", "😃 Is that ok?", "😃 Please?", "😃 I’ll take your...", "😃 ...silence to be...", "😃 ...a yes.", "😃 Here goes...", "😃 \"Yesterday, I...", "😃 ...told one of my...", "😃 ...emoji friends...", "😃 ...that her eyebrows...", "😃 ...had been drawn...", "😃 ...too high.", "😃 She looked surprised!\"", "😁 Ha ha ha!", "😃 Get it?!", "😃 Next one...", "😃 \"One time when...", "😃 ...I was bored...", "😃 ...I put my mummy's...", "😃 ...phone on...", "😃 ...airplane mode...", "😃 ...but it didn't fly.", "😃 Must be something...", "😃 ...wrong with it!\"", "😁 Brilliant!", "😃 \"My sister has...", "😃 ...a great deal...", "😃 ...of willpower...", "😃 ...and when she has...", "😃 ...to tidy her room...", "😃 ...even more...", "😃 ...won’t power!\"", "😁 Boom boom!", "😃 \"My daddy spent...", "😃 ...a lot of time...", "🤑 ...and money...", "😃 ...childproofing...", "😃 ...our house...", "😃 ...but my sister and I...", "😃 ...still manage... ", "😃 ...to get in!\"", "😁 He he!", "😃 I told a few of...", "😃 ...these jokes...", "😃 ...to some of my...", "😃 ...emoji friends...", "😃 ...in kindergarten.", "😃 They mostly laughed...", "😃 ...but I guess somehow...", "😃 ...what I really...", "😃 ...wanted was a...", "😃 ...round of applause.", "😃 Hands down...", "😃 ...that's one of...", "😃 ...the biggest issues...", "☹️ ...for us emojis.", "😃 Gosh!", "😃 Where are my...", "😃 ...manners?!", "😃 I should really...", "😃 ...welcome you again...", "😃 ...and say..."],
11817
11818                ["😃 THANK YOU!", "😃 Thank you...", "😃 ...so much for...", "😃 ...keeping me company.", "😃 I was getting a...", "😃 ...little lonely there.", "😃 You see...", "😃 ...even though Friv...", "😃 ...has millions...", "😃 ...of players...", "😃 ...I only get to chat...", "😃 ...when somebody leaves...", "😃 ...their tab idle.", "😃 I’m so glad...", "😃 ...that you did!", "😃 Now I can tell you...", "😃 ...all about my day!", "😃 So in the morning...", "🤓 ...I was reading...", "😃 ...a very grown up book...", "😃 ...with long words...", "😃 ...and everything.", "😃 It’s about a bear...", "😃 ...who lives with...", "😃 ...his animal friends...", "😃 ...in the woods.", "😃 I think maybe...", "😃 ...in England.", "😃 Anyway...", "😃 ...I got to one...", "😃 ...tricky word I...", "😃 ...didn’t understand.", "😃 My mummy is quite...", "😓 ...stressed right now...", "😃 ...because at work...", "😃 ...my daddy has been...", "😃 ...missing his...", "😃 ...dead lions.", "😃 I don’t really know...", "😃 ...why he misses them...", "😃 ...or even why...", "😃 ...he has them...", "😃 ...in his office.", "🤮 Ewwww!", "😃 Anyway...", "😃 ...luckily my mummy...", "😃 ...always helps me...", "😃 ...with my reading books.", "😃 I had to ask her...", "😃 ...what \"metaphor\"...", "😃 ...meant and she said...", "😃 \"My life’s a train wreck\"", "😃 ...and I said...", "😃 \"I know, but...", "😃 ...what’s a metaphor?\"", "😃 ...but just then...", "😃 ...I had to get on...", "😃 ...the bus for school...", "😃 ...so I never found out.", "😃 I looked up...", "😃 ...that word in...", "😃 ...the dictionary...", "😃 ...and I think...", "😃 ...I get it now.", "😃 Then I asked...", "😃 ...the school librarian...", "😃 ...where Pooh came from.", "😃 She looked at me...", "😃 ...kinda puzzled...", "😃 ...and told me a...", "😃 ...really yucky story...", "😃 ...that made me feel...", "🤢 ...very sick...", "😃 ...and I had to lie down...", "😃 ...in the school office...", "😑 ...until break time.", "😃 I don’t think I’ll...", "😃 ...ask her where...", "😃 ...Tigger and Piglet...", "😃 ...come from.", "😃 Anyway I just wanted...", "😃 ...to announce that...", "😃 ...I really am...", "😁 ...very grateful...", "😃 ...that I have someone...", "😃 ...to talk to.", "😃 In actual fact...", "😃 ...I would like to say..."],
11819
11820                ["😃 Bonjour!", "😉 What’s up?", "😃 Are you finished...", "😃 ...playing on...", "😃 ...the games?", "😃 I hope you’ll...", "😃 ...be right back.", "😃 Of course you’ll...", "😃 ...be back.", "😃 Definitely.", "😃 For real.", "😃 For real, for real.", "😃 After all...", "😃 I’m an optimist.", "😃 Not a pessimist.", "😃 I know 100%...", "😃 ...you'll be back.", "😃 Maybe you’re...", "😃 ...just taking...", "😃 ...a little break.", "😃 Maybe you’re...", "😃 ...hungry and are...", "😃 ...grabbing a snack.", "😃 That’s probably it.", "🥴 Rumbly tummy.", "😁 Like me!", "😃 You know...", "😃 ...one good thing...", "😃 ...about being...", "😃 ...an emoji...", "😃 ...is all the...", "😃 ...delicious food.", "😃 I try to eat...", "😃 ...my veggies...", "😃 ...of course...", "😃 ...but it’s hard not...", "😃 ...to sample...", "😃 ...quite a few of...", "😃 ...those yummy cakes. 🍰", "😃 I don’t eat them.", "😃 I just taste them.", "😃 A lot.", "😃 Although I’m...", "😃 ...an optimist...", "😃 ...I do however always...", "😃 ...eat my dessert first.", "😃 You see...", "😃 ...you never know...", "😃 ...when the world’s...", "😃 ...going to end.", "😃 One time when we...", "😃 ...were on vacation...", "😃 ...in Canada...", "😃 ...we went to...", "😃 ...a special restaurant...", "😃 ...called...", "😃 Pie Heaven.", "😃 They have soooo...", "😃 ...many pies!", "😃 You know what's IN...", "😃 ...each pie because...", "😃 ...of the name.", "😃 They had apple pie...", "😃 ...cherry pie...", "😃 ...even banana pie!", "😍 I tried and loved...", "😃 ...all of those.", "😃 Delicious!", "😃 I didn’t try...", "😃 ...the shepherds pie...", "😃 ...because it sounded...", "😃 ...kinda disgusting...", "😃 ...what they put...", "😃 ...in that one.", "😃 In fact...", "😃 ...my emoji family...", "😃 ...is mostly on a...", "😃 ...plant-based diet now.", "😃 I’m a VEGetarian.", "😃 ...we eat veggies!", "😃 Did I ever tell you...", "😃 ...that this one time...", "😃 ...I was a shepherd...", "😃 ...in our school play?", "😃 I think it was...", "😃 ...at Christmas...", "😃 ...or maybe Easter.", "😃 Anyway, officially...", "☹️ I had been given a...", "🤫 ...non-speaking part...", "😃 ...because my teacher...", "😃 ...said that I had had...", "😃 ...quite lot to say...", "😃 ...in the play before.", "😆 I chatted...", "😃 ...away very happily...", "😃 ...to the baby Jesus...", "😃 ...before the lights...", "😃 ...went down...", "😃 ...and Mrs. Mahboobeh...", "😃 ...used another shepherd’s...", "😃 ...stick to assist me...", "😃 ...off the stage.", "😃 I love Mrs. Mahboobeh.", "🤓 She teaches us French.", "😃 \"Un deux trois!\"", "😃 For her holidays...", "😃 ...she goes to a...", "😃 ...poor country called...", "😃 ...Papua New Guinea...", "😃 ...to be a humanitarian...", "😃 ...which does seem...", "😃 ...a bit wrong to me.", "😃 I’m going to stick...", "😃 ...with being a vegetarian.", "😃 Once on our holidays...", "😃 ...we went to a city..", "😃 ...called Regina...", "😃 ...which everyone in...", "😃 ...my family thought...", "😃 ...was pretty funny...", "😃 ...because its sounds...", "😃 ...exactly like...", "😃 ...Angina.", "😲 !?!", "😃 That was something...", "😃 ...my grandma had...", "😃 ...in hospital.", "😃 She’s better now.", "😃 She does marathons!", "😃 Oh my goodness.", "😃 If Mrs. M were here...", "😃 ...she would probably...", "😃 ...tell me to have...", "😃 ...a rest from talking...", "😃 ...or my jaw bones...", "😃 ...might wear out...", "😍 ...but I just love...", "😃 ...to say stuff like..."],
11821
11822                ["😁 Hello there!", "😃 How are you doing?", "😃 It looks like...", "😃 ...you’re not playing...", "😢 ...on Friv right now.", "😉 That’s ok.", "😃 Good actually.", "😃 In fact my mummy...", "😃 ...has been limiting...", "😃 ...my screen time lately.", "😃 Yesterday, when I...", "😃 ...had been on my...", "😃 ...tablet for quite...", "😃 ...a long time...", "😃 ...and she had been...", "😃 ...nagging me...", "😃 ...for ages...", "😃 ...she said in her...", "😃 ...loud cross voice...", "😫 \"I’m only going...", "😩 ...to ask you...", "😫 ...ONE more time!\"", "😃 Which was good really...", "😃 ...as 
11822she had already...", "🤣 ...asked me a lot!", "😃 Don’t worry.", "😃 I absolutely...", "🥰 ...love my mummy...", "😃 ...and I'm mostly...", "😇 ...very good.", "😃 Problem is...", "😃 ...she’s right...", "😃 ...and sometimes I...", "😃 ...do just stare...", "😃 ...at the screen...", "😃 ...for so long...", "😵 ...my eyes go funny.", "😃 Also, my friend says...", "😃 ...that I shouldn’t use...", "😃 ...an iPad because...", "😃 ...the company that...", "😃 ...makes them...", "😃 ...only pays...", "😃 ...their taxis in...", "😃 ...Ireland and not...", "😃 ...where we live.", "😃 I think Apple should...", "😃 ...pay their taxis...", "😃 ...everywhere as the...", "😃 ...poor drivers probably...", "😃 ...have kids to feed.", "😃 My sister says that...", "😃 ...if we were allowed...", "😃 ...to have a kitten...", "😃 ...then she would go...", "😃 ...on the computer...", "😃 ...a lot less.", "😃 Our daddy says...", "🤒 ...he’s allergic...", "😃 \"Can’t even be in...", "😃 ...the same house.\"", "😃 ...he tells us.", "😃 We suggested he could...", "😃 ...sleep outside.", "😃 Oh wait.", "😃 Sorry.", "😃 I should probably...", "😶 ...shut up now and...", "😃 ...let you get back...", "😃 ...to whatever thing...", "😃 ...you were doing.", "😃 I’ll stop now...", "🤫 ...and be quiet.", "😃 For sure.", "😃 And for definite.", "😉 100%", "😃 Bye!!!", "🥴 ...", "🤐 ...", "😃 Actually it’s better...", "😃 ...that I rest a bit.", "😃 Because I’m only...", "😃 ...a little emoji...", "😃 ...my mummy says that...", "😃 ...if I don’t have a...", "🥱 ...nap in the middle...", "😃 ...of the day...", "😃 ...I get grouchy.", "😩 That’s soooo not true!", "😫 Grrr! I hate it...", "😃 ...when she says that!", "🥱 ...", "😌 z", "😴 zz", "😴 zzz", "😴 ZZZ", "😌 ...", "😁 Hello!", "😃 I’m back!", "😃 I did have a tiny rest...", "😃 ...but I didn’t sleep.", "😃 If you saw that...", "😃 ...my eyes were closed...", "😃 ...that was just me...", "😑 ...having a long blink.", "😃 Oh gosh.", "😃 My sister is...", "😃 ...calling me now.", "😃 So I’d better go...", "😃 ...but in a second...", "😃 ...I’ll be back to say..."]
11823
11824                //["😃 ", "😃 ", "😃 ", "😃 ", "😃 ", "😃 ", "😃 ", "😃 ", "😃 ", "😃 ", "😃 ", "😃 ", "😃 ", "😃 ", "😃 ", "😃 ", "😃 ", "😃 ", "😃 ", "😃 ", "😃 "],
11825
11826            ];
11827
11828
11829
11830        //select random script
11831
11832        function chooseTitles() {
11833
11834            chosenTitles = Math.floor(Math.random() * documentTitlesArray.length);
11835
11836            if (debug) {
11837                //chosenTitles = 2;
11838                //shortLang = "es";
11839            }
11840
11841            if (shortLang != "en") {
11842                titlePrefix = "FRIV: ";
11843                chosenTitles = 0;
11844            }
11845
11846            //console.log("chosenTitles: " + chosenTitles);
11847        }
11848
11849
11850
11851
11852
11853
11854
11855
11856
11857        setInterval(function () { //checkDocumentFocus
11858
11859            //console.log("checkDocumentFocus");
11860            //console.log("Titles Counter: " + titlesCounter);
11861
11862            if (document.hasFocus()) {
11863
11864                //console.log("hasFocus");
11865
11866                chooseTitles();
11867
11868                titlesCounter = defaultTitlesCounter;
11869
11870                if (debug) {
11871                    titlesCounter = -1;
11872                }
11873
11874                if (tilesSequenceStarted) {
11875                    document.title = frivTitle;
11876                }
11877            } else { //not focussed
11878
11879                //console.log("does not have focus ... " + shortLang);
11880
11881                if (titlesCounter < documentTitlesArray[chosenTitles].length - 1) {
11882                    titlesCounter++;
11883                } else {
11884                    titlesCounter = 0;
11885                    if (shortLang == "en" && Math.random() < 0.01) {
11886                        gtag('event', 'Emoji Chat Full En Cycle 1%', {
11887                            'event_category': 'Bonus Content',
11888                            'event_label': 'Easter Egg'
11889                        });
11890                    }
11891                }
11892                if (titlesCounter >= 0) {
11893                    tilesSequenceStarted = true;
11894                    document.title = titlePrefix + documentTitlesArray[chosenTitles][titlesCounter];
11895                }
11896            }
11897        }, 2500);
11898
11899        document.onmousemove = function () {
11900            titlesCounter = defaultTitlesCounter;
11901            if (tilesSequenceStarted) {
11902                document.title = frivTitle;
11903            }
11904        }
11905
11906        //FRIV TIPS
11907        ///////////////////
11908        if (shortLang == "en" && ((pageViews > 17 && pageViews < 23) || (pageViews > 52 && pageViews < 58)) && !isSchool) {
11909
11910            frivTips.style.display = "block";
11911
11912            var frivTipsClickText = "click";
11913            var frivTipsArray = [
11914                "Now that games are made using HTML5 technology you can actually play many of them on your phone or tablet too. Just open your mobile browser and enter 'friv.com' ...see you there!",
11915                "When Friv started in 2006 there was no such thing as a 'smartphone' and people mostly played games on their desktop computers at home. The world has changed; now a lot of people visit Friv on their phones and tablets from home, school, work and even while travelling!",
11916                "The games on Friv play in full screen mode. That means that we use all of your screen for the action, and don't place any distractions or ads around the games. If you want our lovely menu to be in full screen mode too, press F11 on your keyboard. Remember to press it again to get your browser back to normal!",
11917                //
11918                "At Friv we try to keep the number of adverts we show to the absolute minimum - to make playing games better for you! We'll NEVER interrupt your game with an ad or make you sit through a video. That would be rude.",
11919                "There are some games you will only find on Friv and nowhere else, like Smiling Glass Pro Pourer and Crazy Candy Creator. We made them specially for you!",
11920                "Secret: If you click on the Friv logo at the top of the page, you will hear our menu music. Click on it 10 times you'll get extra games!",
11921                "Friv was started after we saw how bad it was for kids trying to play online games at school. Nothing but endless ads and links that went nowhere. We knew we could do better. Friv is now popular with players of all ages.",
11922                "At Friv we don't have much money for advertising, so we ask on our players to spread the word. Thank you!",
11923                "Back in 2006, the main reason we used the made up word 'Friv' was because we thought it would be easy to type and remember. Around the world people pronounce it in VERY different ways. Freev-eh!",
11924                "There is actually a special Friv site for schools - but anyone can use it. At www.friv4school.com there are less of the shooting and dressup games, but more fun puzzle games. Try it!",
11925                "The Friv logo at the top of the page is a vector image. It's not stored as dots or 'pixels' but as mathematical lines. It means that no matter how big your screen is, the logo will always stay sharp.",
11926                "We didn't need to buy any expensive software or fancy computers to make Friv. Anyone can learn to code for free. Just search for 'HTML tutorial' on YouTube - it's a great place to start.",
11927                "The quickest way to get to Friv is to simply type 'friv.com' into your address bar. It's faster and more reliable than using a search engine.",
11928                "One day we found some old Victorian story books in a dusty leather suitcase. Some of them were so good we read them out for you as bedtime stories - find them in 'Friv Daily' at the bottom of the page.",
11929                "When you click on a game below, your computer sends a request to our servers to send the game to you. The information travels as beams of light along fibre optic cables under the sea. But the light can only travel about 50 miles / 70 kilometres or so before it becomes too faint, so there are amplifiers called 'repeaters' dotted all the way along the thousands of miles of cables to keep the data flowing!",
11930                "Once you have played a certain number of games you will see a poo emoji at the <i>bottom</i> of this page. Mostly he likes to sleep. If you click on him, he, well - let's just say he's been clicked on literally MILLIONS of times!",
11931                "Lots of families around the world have no computers at all, or maybe just one basic phone or tablet. We work really hard to make Friv run well even on smaller or slower machines.",
11932                "If someday you want to learn how to make games yourself, you could study computer programming, and hopefully mathematics too. But don't forget art, music and design - they make games come alive!",
11933                "Since we started Friv, literally hundreds of fake Friv sites have appeared, many even ripping off our logo. Thank y
11933ou, and well done for choosing the real Friv. Accept no imitations!",
11934                "We want the games on Friv to be suitable for all ages, and that's why you won't find swearing in any of them.",
11935                "Most of the games on Friv aren't made by big companies. A typical game is made by just one or two people, often working from home. Many are made for love rather than money, and we think it shows!",
11936                "In the early days of video games, computers were slow and didn't have much memory. Often, they could only display 4 or 8 colours on the screen at once. Now computers can display 16,777,216 colours on the screen at once!",
11937                "We think that playing games should be free for everyone, and we get upset when users elsewhere are overcharged for upgrades / loot boxes / skins etc. Friv will be free forever, for everyone!",
11938                "If you counted all the hours users spend on Friv, it would add up to thousands of lifetimes. This crazy fact keeps us determined to make the experience the best it can be.",
11939                "In the old days, computer games were programmed in assembly language which looked like [mov r0, r10 | bl 0x51dd4 | movt r0, #152 | cmp r0, r5] and the games would only run on the type of computer they were written on. Nowadays, the games here are written in Javascript and will run on nearly any device with a browser. Hurrah!",
11940                "Friv is popular around the world, but we actually get most hits from Latin America - countries like Peru, Colombia, Mexico and Brazil.",
11941                "A lot of users make videos of themselves playing on Friv, and upload them to YouTube. It's a great way to practice valuable presentation, planning, narration, and multitasking skills. Search for OBS (Open Broadcast Software) to find free software to do it.",
11942                "At Friv we try not to be sexist. That's why from the start we chose purple for our background colour - it's halfway between blue and pink! And we hate racism. That's why wherever there is a person of colour in any of the games, we choose them for the thumbnail image.",
11943                "If you search for '250' on Google you will find Friv. That's because our old Flash menu had 250 games, and people still like to search for that number to get here. Try it!",
11944                "We always try to add two or three new games a week - sometimes more, sometimes less - so keep checking back!",
11945            ];
11946
11947            if (touchDevice) {
11948                frivTipsClickText = "tap";
11949                frivTipsArray[0] = "All the games here work on touch screens, but for some Friv games you need to use a keyboard and mouse. Try Friv on your desktop computer for an even BIGGER selection!";
11950                frivTipsArray[1] = "Congratulations! You may not know it, but you are a tech early-adopter! You are playing games in your mobile browser. No need for the App Store or Google Play!";
11951                frivTipsArray[2] = "The future of playing games is in the mobile browser - that way there are no big corporations deciding what you can play. It's the free and open internet, not just what's allowed in the app stores.";
11952                var i;
11953                for (i = 0; i < frivTipsArray.length; i++) {
11954                    frivTipsArray[i] = frivTipsArray[i].replace(/click/g, "tap");
11955                    frivTipsArray[i] = frivTipsArray[i].replace(/Click/g, "Tap");
11956                    frivTipsArray[i] = frivTipsArray[i].replace(/taped/g, "tapped"); //recursive clicked -> taped -> tapped
11957                }
11958            }
11959
11960            var frivTipNumber = 0 // Math.floor(Math.random() * frivTipsArray.length);
11961
11962            if (frivTipNumber == frivTipsArray.length - 1) { //never choose last friv tip (for analytics)
11963                frivTipNumber--;
11964            }
11965
11966            displayFrivTip();
11967        }
11968
11969        function displayFrivTip() {
11970            var chosenFrivTip = frivTipsArray[frivTipNumber];
11971            frivTips.innerHTML = "Fascinating Frivolous Fact For Fanatical Friv Fans " + (frivTipNumber + 1) + "/" + (frivTipsArray.length) + " (" + frivTipsClickText 
11971+ " for next)<br>" + frivTipsArray[frivTipNumber];
11972            frivTipNumber++;
11973            if (frivTipNumber == frivTipsArray.length) {
11974                frivTipNumber = 0;
11975                gtag('event', 'Friv Tips Full Cycle', {
11976                    'event_category': 'Bonus Content',
11977                    'event_label': 'Easter Egg'
11978                });
11979            }
11980        }
11981
11982        frivTips.addEventListener("click", displayFrivTip);
11983
11984
11985        //CHECK AND REPORT HOSTNAMES (currently only 1% sample, specified in analytic config)
11986        var siteURL = window.location.href;
11987
11988        if (siteURL.indexOf("https://www.friv.com") != 0 && siteURL.indexOf("https://www.friv4school.com") != 0) { //none of the recognised hostnames present
11989            gtag('event', siteURL, {
11990                'event_category': 'Site URL',
11991                'event_label': 'Debugging'
11992            });
11993        }
11994
11995
11996        //console.log("x: " + navigator.connection);
11997        //console.log("y: " + navigator.mozConnection);
11998        //console.log("z: " + navigator.webkitConnection);
11999
12000
12001        //CHECK AND REPORT CONNECTIVITY (currently 'school' only)
12002        if (isSchool && (navigator.connection || navigator.mozConnection || navigator.webkitConnection)) {
12003
12004            console.log('         type: ' + navigator.connection.type);
12005
12006            // Effective bandwidth estimate
12007            console.log('     downlink: ' + navigator.connection.downlink + 'Mb/s');
12008
12009            // Effective round-trip time estimate
12010            console.log('          rtt: ' + navigator.connection.rtt + 'ms');
12011
12012            // Upper bound on the downlink speed of the first network hop
12013            console.log('  downlinkMax: ' + navigator.connection.downlinkMax + 'Mb/s');
12014
12015            // Effective connection type determined using a combination of recently observed rtt and downlink values
12016            console.log('effectiveType: ' + navigator.connection.effectiveType);
12017
12018            // True if the user has requested a reduced data usage mode from the user agent
12019            console.log('     saveData: ' + navigator.connection.saveData);
12020
12021            var connectivity = navigator.connection.effectiveType;
12022
12023            gtag('event', connectivity, {
12024                'event_category': 'Connectivity',
12025                'event_label': 'Debugging'
12026            });
12027
12028            if (androidVersion > 0) {
12029                gtag('event', androidVersion, {
12030                    'event_category': 'androidVersion',
12031                    'event_label': 'Debugging'
12032                });
12033            }
12034
12035        }
12036
12037
12038        //HOUSE PROMO
12039        /////////////
12040        var bannerFGN1 = bannerFGN2 = "3025-mix01";
12041
12042        var bannerFGNRandom = Math.random();
12043
12044        if (gamePlays > 3 && bannerFGNRandom < 0.1) {
12045            bannerFGN1 = "fgn-pico8/loader";
12046        }
12047
12048        if (gamePlays > 3 && bannerFGNRandom > 0.95) {
12049            bannerFGN2 = "fgn-pico8/loader";
12050        }
12051
12052        if (scriptsLoadable && !isSchool && window.location.href.indexOf("new.html") > -1) {
12053            setTimeout(function () {
12054                var hp1 = document.getElementById("housePrm1");
12055                if (window.getComputedStyle(hp1).display != "none") {
12056                    housePrm1.innerHTML = "<iframe src='z/fgn/" + bannerFGN1 + ".html' width=300 height=256 frameborder=0 scrolling='no'></iframe>";
12057                }
12058                var hp2 = document.getElementById("housePrm2");
12059                if (window.getComputedStyle(hp2).display != "none") {
12060                    housePrm2.innerHTML = "<iframe src='z/fgn/" + bannerFGN2 + ".html' width=300 height=256 frameborder=0 scrolling='no'></iframe>";
12061                }
12062            }, 1000);
12063        }
12064
12065
12066        //SCROLL TO LOVE TESTER - e.g. if accessed by external link
12067        ///////////////////////////////////////////////////////////
12068        function smoothScrollToLoveTester() {
12069            if (window.location.href.includes("#loveTesterA")) {
12070
12071                const myTimeout = setTimeout(showLoveTester, 1000);
12072
12073            }
12074        }
12075
12076        window.onload = smoothScrollToLoveTester;
12077
12078
12079
12080        //REVIEWS
12081        /////////
12082        const reviewsText = {
12083            //"en": "We hope you enjoy playing the games here at Friv. We’re working really hard every day to bring you the best games we can without interrupting your gameplay with ads. If you or a member of your family is able to, please leave us a review at <a href='https://www.sitejabber.com/online-business-review?url=friv.com' rel='noopener noreferrer'>Sitejabber</a> ...we hope we can earn your stars. You will need an email address. Thank you so much!<br>⭐⭐⭐⭐⭐",
12084            "en": "We hope you enjoy playing the games here at Friv. We’re working really hard every day to bring you the best games we can without interrupting your gameplay with ads. If you or a member of your family is able to, please leave us a review at <a href='https://www.trustpilot.com/review/www.friv.com' rel='noopener noreferrer'>Trustpilot</a> ...we hope we can earn your stars. Thank you so much!<br>⭐⭐⭐⭐⭐", //https://tinyurl.com/frivtp/
12085            "es": "Esperamos que disfrutes jugando a los juegos aquí en Friv. Estamos trabajando muy duro cada día para ofrecerte los mejores juegos posibles sin interrumpir tu juego con anuncios. Si tú o algún miembro de tu familia puede, por favor déjanos una reseña en <a href='https://es.trustpilot.com/review/www.friv.com' rel='noopener noreferrer'>Trustpilot</a> ...esperamos poder ganarnos tus estrellas. ¡Muchas gracias!<br>⭐⭐⭐⭐⭐", //https://tinyurl.com/frivtpes
12086            "pt": "Esperamos que goste de jogar os jogos aqui no Friv. Estamos a trabalhar arduamente todos os dias para lhe trazer os melhores jogos possíveis sem interromper a sua jogabilidade com anúncios. Se você ou algum membro da sua família puder, por favor deixe-nos uma avaliação no <a href='https://pt.trustpilot.com/review/www.friv.com' rel='nofollow noreferrer'>Trustpilot</a> ...esperamos poder ganhar as suas estrelas. Muito obrigado!<br>⭐⭐⭐⭐⭐", //https://tinyurl.com/frivtppt
12087            "fr": "Nous espérons que vous apprécierez de jouer aux jeux ici sur Friv. Nous travaillons très dur chaque jour pour vous apporter les meilleurs jeux possibles sans interrompre votre expérience de jeu avec des publicités. Si vous ou un membre de votre famille le pouvez, veuillez nous laisser un avis sur <a href='https://fr.trustpilot.com/review/www.friv.com' rel='noopener noreferrer'>Trustpilot</a> ...nous espérons pouvoir gagner vos étoiles. Merci beaucoup !<br>⭐⭐⭐⭐⭐", //https://tinyurl.com/frivtpfr
12088            "de": "Wir hoffen, dass Sie viel Spaß beim Spielen der Spiele hier auf Friv haben. Wir arbeiten jeden Tag sehr hart daran, Ihnen die besten Spiele zu bieten, ohne Ihr Spielerlebnis mit Werbung zu unterbrechen. Wenn Sie oder ein Familienmitglied dazu in der Lage sind, hinterlassen Sie uns bitte eine Bewertung auf <a href='https://de.trustpilot.com/review/www.friv.com' rel='noopener noreferrer'>Trustpilot</a> ...wir hoffen, wir können uns Ihre Sterne verdienen. Vielen Dank!<br>⭐⭐⭐⭐⭐", //https://tinyurl.com/frivtpde
12089            "pl": "Mamy nadzieję, że spodoba Ci się granie w gry tutaj na Friv. Codziennie ciężko pracujemy, aby dostarczać Ci najlepsze możliwe gry bez przerywania rozgrywki reklamami. Jeśli Ty lub ktoś z Twojej rodziny może, prosimy zostaw nam opinię na <a href='https://pl.trustpilot.com/review/www.friv.com' rel='noopener noreferrer'>Trustpilot</a> ...mamy nadzieję zasłużyć na Twoje gwiazdki. Dziękujemy bardzo!<br>⭐⭐⭐⭐⭐", //https://tinyurl.com/frivtppl
12090        };
12091
12092        if (gamePlays > 99 && !isSchool && reviewsText[shortLang]) { //mostly disabled
12093            siteDescription.innerHTML = reviewsText[shortLang];
12094        }
12095
12096        //DISPLAY ELEMENTS ONLY WHEN USERS SCROLL TO IT
12097        ///////////////////////////////////////////////
12098        document.addEventListener('DOMContentLoaded', function () {
12099            const animatedElements = document.querySelectorAll('.scroll-animate');
12100
12101            function isInViewport(element) {
12102                const rect = element.getBoundingClientRect();
12103                // Adjust this check if you want the animation to start earlier/later
12104                return (
12105                    rect.top <= (window.innerHeight || document.documentElement.clientHeight) * 0.8 // Starts when 80% of element is in view
12106                );
12107            }
12108
12109            function handleScroll() {
12110                animatedElements.forEach(element => {
12111                    // Only process if the element is not already visible
12112                    if (!element.classList.contains('visible')) {
12113                        if (isInViewport(element)) {
12114                            element.classList.add('visible');
12115                            // If you only want it to appear once, you could do this:
12116                            // element.dataset.animated = 'true'; // Mark as animated
12117                        }
12118                    }
12119                });
12120
12121                // Optional: If you want to stop checking after all elements are visible
12122                // const allAnimated = Array.from(animatedElements).every(el => el.classList.contains('visible'));
12123                // if (allAnimated) {
12124                //     window.removeEventListener('scroll', handleScroll);
12125                // }
12126            }
12127
12128            // Add scroll event listener
12129            window.addEventListener('scroll', handleScroll);
12130
12131            // Initial check in case elements are already in view on page load
12132            // This will make them expand immediately if they are visible
12133            handleScroll();
12134
12135            // Re-check on resize in case layout changes
12136            window.addEventListener('resize', handleScroll);
12137        });
12138
12139
12140        //MOBILE FRIENDLINESS TEST CHANGES
12141        //////////////////////////////////
12142        let deviceAspectRatio = window.innerWidth / window.innerHeight;
12143
12144        let scrollLimitReached = false;
12145
12146        console.log("USER ASPECT RATIO: " + deviceAspectRatio + " ... USER VISITS: " + pageViews);
12147
12148        if (deviceAspectRatio > 1 || pageViews > 1) { //is landscape, or we have a repeat user, so load normally
12149
12150            console.log("Landscape or regular visitor... showing extra...");
12151
12152            showContent();
12153        } else {
12154
12155            console.log("Portrait or first time visitor...");
12156
12157            scrollToPlay.style.display = "block";
12158
12159            let userScroll = 0;
12160            window.onscroll = (e) => {
12161                userScroll++;
12162
12163                if (!scrollLimitReached && userScroll >= 10) {
12164                    console.log("User has scrolled sufficiently... showing extra...");
12165                    showContent();
12166                    scrollLimitReached = true;
12167                }
12168            }
12169
12170        }
12171
12172        function showContent() {
12173            scrollToPlay.style.display = "none";
12174            gamesBlock.style.display = "block";
12175        }
12176
12177
12178
12179        //TEXT LINK PROMO FOR ADBLOCK / OTHER USERS
12180        ///////////////////////////////////////////
12181
12182        //if (gamePlays > 10 && (!scriptsLoadable && !isSchool)) {
12183        //    topPromoTextLink.style.display = "block"; //gamui.com etc.
12184        //}
12185
12186        //if (windows11 && shortLang !== "en" && gamePlays > 10 && !isSchool) {
12187        //    topPromoTextLink.style.display = "block";
12188        //}
12189
12190        //if (gamePlays > 10 && !isSchool && shortLang == "en" && (hour > 15 && hour < 23)) {
12191        //    bottomPromoTextLink.style.display = "block"; //werty etc.
12192        //}
12193
12194
12195        //XYZ GAMUI PROMO
12196        ///////////////////////////////////////////
12197        document.addEventListener('DOMContentLoaded', () => {
12198            // Parse current query parameters
12199            const urlParams = new URLSearchParams(window.location.search);
12200
12201            // Check if '?gamui' parameter is present in the URL
12202            if (urlParams.has('gamui') && (shortLang == "es" || false)) {
12203                setTimeout(() => {
12204                    showPromoOverlay();
12205                }, 20000);
12206            }
12207        });
12208
12209        function showPromoOverlay() {
12210            const overlay = document.getElementById('promo-overlay');
12211            if (!overlay) return;
12212
12213            // Make the overlay visible
12214            overlay.classList.add('visible');
12215            overlay.setAttribute('aria-hidden', 'false');
12216
12217            // Handle click event anywhere on the overlay
12218            overlay.addEventListener('click', handleOverlayClick, { once: true });
12219        }
12220
12221        function handleOverlayClick() {
12222            const overlay = document.getElementById('promo-overlay');
12223
12224            // Launch destination in a new tab
12225            window.open('https://www.gamui.com', '_blank', 'noopener,noreferrer');
12226
12227            // Remove/hide overlay
12228            if (overlay) {
12229                overlay.classList.remove('visible');
12230                overlay.setAttribute('aria-hidden', 'true');
12231            }
12232        }
12233
12234        //FINAL JAVASCRIPT EXECUTION
12235        ////////////////////////////
12236        if (Math.random() > 0.99) {
12237            gtag('event', 'Final Javascript', {
12238                'event_category': 'Navigation',
12239                'event_label': 'Debugging'
12240            });
12241        }
12242        userAlert.style.display = "none"; //if javascript finishes executing as expected, no alert button will be available for users to click on
12243
12244        function pageFullyLoaded() {
12245            if (os == "Android") {
12246                setTimeout(function () {
12247                    var head = document.head || document.getElementsByTagName('head')[0];
12248                    var meta = document.createElement('meta');
12249                    meta.name = "viewport";
12250                    meta.content = "width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no";
12251                    head.appendChild(meta);
12252                }, 10000); //guessed min needed for lthouse (was 5000)
12253
12254            }
12255        }
12256
12257        if (runExecutionIssueDetect) {
12258            var eid2 = document.createElement("IMG");
12259            eid2.setAttribute("src", "https://whos.amung.us/swidget/msfolka2w002.gif");
12260            eid2.setAttribute("id", "executionIssueDetectDiv2");
12261            document.body.appendChild(eid2);
12262        }
12263
12264    </script>
12264
12265
12266
12267
12268</body>
12269
12270</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.