-
Notifications
You must be signed in to change notification settings - Fork 0
/
python-lottery.html
332 lines (311 loc) · 65.1 KB
/
python-lottery.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8"><script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"e7fb1b89a0",applicationID:"750147145"};;(()=>{var e,t,r={9071:(e,t,r)=>{"use strict";r.d(t,{I:()=>n});var n=0,i=navigator.userAgent.match(/Firefox[\/\s](\d+\.\d+)/);i&&(n=+i[1])},6562:(e,t,r)=>{"use strict";r.d(t,{P_:()=>p,Mt:()=>v,C5:()=>d,DL:()=>y,OP:()=>N,lF:()=>B,Yu:()=>A,Dg:()=>h,CX:()=>f,GE:()=>w,sU:()=>M});var n={};r.r(n),r.d(n,{agent:()=>x,match:()=>j,version:()=>O});var i=r(6797),o=r(909),a=r(8610);class s{constructor(e,t){try{if(!e||"object"!=typeof e)return(0,a.Z)("New setting a Configurable requires an object as input");if(!t||"object"!=typeof t)return(0,a.Z)("Setting a Configurable requires a model to set its initial properties");Object.assign(this,t),Object.entries(e).forEach((e=>{let[t,r]=e;const n=(0,o.q)(t);n.length&&r&&"object"==typeof r&&n.forEach((e=>{e in r&&((0,a.Z)('"'.concat(e,'" is a protected attribute and can not be changed in feature ').concat(t,". It will have no effect.")),delete r[e])})),this[t]=r}))}catch(e){(0,a.Z)("An error occured while setting a Configurable",e)}}}const c={beacon:i.ce.beacon,errorBeacon:i.ce.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},u={};function d(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!u[e])throw new Error("Info for ".concat(e," was never set"));return u[e]}function f(e,t){if(!e)throw new Error("All info objects require an agent identifier!");u[e]=new s(t,c),(0,i.Qy)(e,u[e],"info")}const l={allow_bfcache:!1,privacy:{cookies_enabled:!0},ajax:{deny_list:void 0,enabled:!0,harvestTimeSeconds:10},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},ssl:void 0,obfuscate:void 0,jserrors:{enabled:!0,harvestTimeSeconds:10},metrics:{enabled:!0,harvestTimeSeconds:10},page_action:{enabled:!0,harvestTimeSeconds:30},page_view_event:{enabled:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30},session_trace:{enabled:!0,harvestTimeSeconds:10},spa:{enabled:!0,harvestTimeSeconds:10}},g={};function p(e){if(!e)throw new Error("All configuration objects require an agent identifier!");if(!g[e])throw new Error("Configuration for ".concat(e," was never set"));return g[e]}function h(e,t){if(!e)throw new Error("All configuration objects require an agent identifier!");g[e]=new s(t,l),(0,i.Qy)(e,g[e],"config")}function v(e,t){if(!e)throw new Error("All configuration objects require an agent identifier!");var r=p(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}const m={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},b={};function y(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!b[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return b[e]}function w(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");b[e]=new s(t,m),(0,i.Qy)(e,b[e],"loader_config")}const A=(0,i.mF)().o;var E=r(2053),x=null,O=null;if(navigator.userAgent){var T=navigator.userAgent,S=T.match(/Version\/(\S+)\s+Safari/);S&&-1===T.indexOf("Chrome")&&-1===T.indexOf("Chromium")&&(x="Safari",O=S[1])}function j(e,t){if(!x)return!1;if(e!==x)return!1;if(!t)return!0;if(!O)return!1;for(var r=O.split("."),n=t.split("."),i=0;i<n.length;i++)if(n[i]!==r[i])return!1;return!0}var D=r(5526),_=r(2374);const k="NRBA_SESSION_ID";function P(){if(!_.il)return null;try{let e;return null===(e=window.sessionStorage.getItem(k))&&(e=(0,D.ky)(16),window.sessionStorage.setItem(k,e)),e}catch(e){return null}}var I=r(8226);const C=e=>({customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,offset:(0,E.yf)(),onerror:void 0,origin:""+_._A.location,ptid:void 0,releaseIds:{},sessionId:1==v(e,"privacy.cookies_enabled")?P():null,xhrWrappable:"function"==typeof _._A.XMLHttpRequest?.prototype?.addEventListener,userAgent:n,version:I.q}),R={};function N(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!R[e])throw new Error("Runtime for ".concat(e," was never set"));return R[e]}function M(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");R[e]=new s(t,C(e)),(0,i.Qy)(e,R[e],"runtime")}function B(e){return function(e){try{const t=d(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}(e)}},8226:(e,t,r)=>{"use strict";r.d(t,{q:()=>n});const n="1225.PROD"},9557:(e,t,r)=>{"use strict";r.d(t,{w:()=>o});var n=r(8610);const i={agentIdentifier:""};class o{constructor(e){try{if("object"!=typeof e)return(0,n.Z)("shared context requires an object as input");this.sharedContext={},Object.assign(this.sharedContext,i),Object.entries(e).forEach((e=>{let[t,r]=e;Object.keys(i).includes(t)&&(this.sharedContext[t]=r)}))}catch(e){(0,n.Z)("An error occured while setting SharedContext",e)}}}},4329:(e,t,r)=>{"use strict";r.d(t,{L:()=>d,R:()=>c});var n=r(3752),i=r(7022),o=r(4045),a=r(2325);const s={};function c(e,t){const r={staged:!1,priority:a.p[t]||0};u(e),s[e].get(t)||s[e].set(t,r)}function u(e){e&&(s[e]||(s[e]=new Map))}function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"feature";if(u(e),!e||!s[e].get(t))return a(t);s[e].get(t).staged=!0;const r=Array.from(s[e]);function a(t){const r=e?n.ee.get(e):n.ee,a=o.X.handlers;if(r.backlog&&a){var s=r.backlog[t],c=a[t];if(c){for(var u=0;s&&u<s.length;++u)f(s[u],c);(0,i.D)(c,(function(e,t){(0,i.D)(t,(function(t,r){r[0].on(e,r[1])}))}))}delete a[t],r.backlog[t]=null,r.emit("drain-"+t,[])}}r.every((e=>{let[t,r]=e;return r.staged}))&&(r.sort(((e,t)=>e[1].priority-t[1].priority)),r.forEach((e=>{let[t]=e;a(t)})))}function f(e,t){var r=e[1];(0,i.D)(t[r],(function(t,r){var n=e[0];if(r[0]===n){var i=r[1],o=e[3],a=e[2];i.apply(o,a)}}))}},3752:(e,t,r)=>{"use strict";r.d(t,{c:()=>f,ee:()=>u});var n=r(6797),i=r(3916),o=r(7022),a=r(6562),s="nr@context";let c=(0,n.fP)();var u;function d(){}function f(e){return(0,i.X)(e,s,l)}function l(){return new d}function g(){(u.backlog.api||u.backlog.feature)&&(u.aborted=!0,u.backlog={})}c.ee?u=c.ee:(u=function e(t,r){var n={},c={},f={},p=!1;try{p=16===r.length&&(0,a.OP)(r).isolatedBacklog}catch(e){}var h={on:b,addEventListener:b,removeEventListener:y,emit:m,get:A,listeners:w,context:v,buffer:E,abort:g,aborted:!1,isBuffering:x,debugId:r,backlog:p?{}:t&&"object"==typeof t.backlog?t.backlog:{}};return h;function v(e){return e&&e instanceof d?e:e?(0,i.X)(e,s,l):l()}function m(e,r,n,i,o){if(!1!==o&&(o=!0),!u.aborted||i){t&&o&&t.emit(e,r,n);for(var a=v(n),s=w(e),d=s.length,f=0;f<d;f++)s[f].apply(a,r);var l=O()[c[e]];return l&&l.push([h,e,r,a]),a}}function b(e,t){n[e]=w(e).concat(t)}function y(e,t){var r=n[e];if(r)for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)}function w(e){return n[e]||[]}function A(t){return f[t]=f[t]||e(h,t)}function E(e,t){var r=O();h.aborted||(0,o.D)(e,(function(e,n){t=t||"feature",c[n]=t,t in r||(r[t]=[])}))}function x(e){return!!O()[c[e]]}function O(){return h.backlog}}(void 0,"globalEE"),c.ee=u)},9252:(e,t,r)=>{"use strict";r.d(t,{E:()=>n,p:()=>i});var n=r(3752).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},4045:(e,t,r)=>{"use strict";r.d(t,{X:()=>o});var n=r(9252);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.E,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.E);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},8544:(e,t,r)=>{"use strict";r.d(t,{bP:()=>s,iz:()=>c,m$:()=>a});var n=r(2374);let i=!1,o=!1;try{const e={get passive(){return i=!0,!1},get signal(){return o=!0,!1}};n._A.addEventListener("test",null,e),n._A.removeEventListener("test",null,e)}catch(e){}function a(e,t){return i||o?{capture:!!e,passive:i,signal:t}:!!e}function s(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];window.addEventListener(e,t,a(r))}function c(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];document.addEventListener(e,t,a(r))}},5526:(e,t,r)=>{"use strict";r.d(t,{Ht:()=>a,M:()=>o,Rl:()=>i,ky:()=>s});var n=r(2374);function i(){var e=null,t=0,r=n._A?.crypto||n._A?.msCrypto;function i(){return e?15&e[t++]:16*Math.random()|0}r&&r.getRandomValues&&(e=r.getRandomValues(new Uint8Array(31)));for(var o,a="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx",s="",c=0;c<a.length;c++)s+="x"===(o=a[c])?i().toString(16):"y"===o?(o=3&i()|8).toString(16):o;return s}function o(){return s(16)}function a(){return s(32)}function s(e){var t=null,r=0,n=self.crypto||self.msCrypto;n&&n.getRandomValues&&Uint8Array&&(t=n.getRandomValues(new Uint8Array(31)));for(var i=[],o=0;o<e;o++)i.push(a().toString(16));return i.join("");function a(){return t?15&t[r++]:16*Math.random()|0}}},2053:(e,t,r)=>{"use strict";r.d(t,{nb:()=>c,os:()=>u,yf:()=>s,zO:()=>a});var n=r(7145),i=(new Date).getTime(),o=i;function a(){return n.G&&performance.now?Math.round(performance.now()):(i=Math.max((new Date).getTime(),i))-o}function s(){return i}function c(e){o=e}function u(){return o}},7145:(e,t,r)=>{"use strict";r.d(t,{G:()=>n});const n=void 0!==r(2374)._A?.performance?.timing?.navigationStart},6625:(e,t,r)=>{"use strict";r.d(t,{s:()=>c,v:()=>u});var n=r(8283),i=r(9071),o=r(2053),a=r(7145),s=r(2374);let c=!0;function u(e){var t=function(){if(i.I&&i.I<9)return;if(a.G)return c=!1,s._A?.performance?.timing?.navigationStart}();t&&((0,n.B)(e,"starttime",t),(0,o.nb)(t))}},8283:(e,t,r)=>{"use strict";r.d(t,{B:()=>o,L:()=>a});var n=r(2053),i={};function o(e,t,r){void 0===r&&(r=(0,n.zO)()+(0,n.os)()),i[e]=i[e]||{},i[e][t]=r}function a(e,t,r,n){const o=e.sharedContext.agentIdentifier;var a=i[o]?.[r],s=i[o]?.[n];void 0!==a&&void 0!==s&&e.store("measures",t,{value:s-a})}},9548:(e,t,r)=>{"use strict";r.d(t,{T:()=>i});var n=r(2374);const i={isFileProtocol:function(){let e=Boolean("file:"===(0,n.lW)()?.location?.protocol);e&&(i.supportabilityMetricSent=!0);return e},supportabilityMetricSent:!1}},8610:(e,t,r)=>{"use strict";function n(e,t){console&&console.warn&&"function"==typeof console.warn&&(console.warn("New Relic: ".concat(e)),t&&console.warn(t))}r.d(t,{Z:()=>n})},3916:(e,t,r)=>{"use strict";r.d(t,{X:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},2374:(e,t,r)=>{"use strict";r.d(t,{_A:()=>o,il:()=>n,lW:()=>a,v6:()=>i});const n=Boolean("undefined"!=typeof window&&window.document),i=Boolean("undefined"!=typeof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator);let o=(()=>{if(n)return window;if(i){if("undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope)return globalThis;if(self instanceof WorkerGlobalScope)return self}throw new Error('New Relic browser agent shutting down due to error: Unable to locate global scope. This is possibly due to code redefining browser global variables like "self" and "window".')})();function a(){return o}},7022:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t){var r=[],i="",o=0;for(i in e)n.call(e,i)&&(r[o]=t(i,e[i]),o+=1);return r}},9226:(e,t,r)=>{"use strict";r.d(t,{$c:()=>u,Ng:()=>d,RR:()=>c});var n=r(6562),i=r(9557),o=r(9548),a=r(8610),s={regex:/^file:\/\/(.*)/,replacement:"file://OBFUSCATED"};class c extends i.w{constructor(e){super(e)}shouldObfuscate(){return u(this.sharedContext.agentIdentifier).length>0}obfuscateString(e){if(!e||"string"!=typeof e)return e;for(var t=u(this.sharedContext.agentIdentifier),r=e,n=0;n<t.length;n++){var i=t[n].regex,o=t[n].replacement||"*";r=r.replace(i,o)}return r}}function u(e){var t=[],r=(0,n.Mt)(e,"obfuscate")||[];return t=t.concat(r),o.T.isFileProtocol()&&t.push(s),t}function d(e){for(var t=!1,r=!1,n=0;n<e.length;n++){"regex"in e[n]?"string"!=typeof e[n].regex&&e[n].regex.constructor!==RegExp&&((0,a.Z)('An obfuscation replacement rule contains a "regex" value with an invalid type (must be a string or RegExp)'),r=!0):((0,a.Z)('An obfuscation replacement rule was detected missing a "regex" value.'),r=!0);var i=e[n].replacement;i&&"string"!=typeof i&&((0,a.Z)('An obfuscation replacement rule contains a "replacement" value with an invalid type (must be a string)'),t=!0)}return!t&&!r}},2650:(e,t,r)=>{"use strict";r.d(t,{K:()=>a,b:()=>o});var n=r(8544);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.bP)("load",e,t)}function a(e){if(i())return e();(0,n.iz)("DOMContentLoaded",e)}},6797:(e,t,r)=>{"use strict";r.d(t,{EZ:()=>u,Qy:()=>c,ce:()=>o,fP:()=>a,gG:()=>d,mF:()=>s});var n=r(2053),i=r(2374);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return i._A.NREUM||(i._A.NREUM={}),void 0===i._A.newrelic&&(i._A.newrelic=i._A.NREUM),i._A.NREUM}function s(){let e=a();return e.o||(e.o={ST:i._A.setTimeout,SI:i._A.setImmediate,CT:i._A.clearTimeout,XHR:i._A.XMLHttpRequest,REQ:i._A.Request,EV:i._A.Event,PR:i._A.Promise,MO:i._A.MutationObserver,FETCH:i._A.fetch}),e}function c(e,t,r){let i=a();const o=i.initializedAgents||{},s=o[e]||{};return Object.keys(s).length||(s.initializedAt={ms:(0,n.zO)(),date:new Date}),i.initializedAgents={...o,[e]:{...s,[r]:t}},i}function u(e,t){a()[e]=t}function d(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},6998:(e,t,r)=>{"use strict";r.d(t,{N:()=>i,e:()=>o});var n=r(8544);function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return void(0,n.iz)("visibilitychange",(function(){if(t){if("hidden"!=document.visibilityState)return;e()}e(document.visibilityState)}))}function o(){return"hidden"===document.visibilityState?-1:1/0}},6034:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(2325).D.metrics},600:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Instrument:()=>O,constants:()=>T});var n=r(9252),i=r(4045),o=r(6114),a=r(2374),s={REACT:"React",ANGULAR:"Angular",ANGULARJS:"AngularJS",BACKBONE:"Backbone",EMBER:"Ember",VUE:"Vue",METEOR:"Meteor",ZEPTO:"Zepto",JQUERY:"Jquery"};function c(){if(!a.il)return[];var e=[];try{(function(){try{if(window.React||window.ReactDOM||window.ReactRedux)return!0;if(document.querySelector("[data-reactroot], [data-reactid]"))return!0;for(var e=document.querySelectorAll("body > div"),t=0;t<e.length;t++)if(Object.keys(e[t]).indexOf("_reactRootContainer")>=0)return!0;return!1}catch(e){return!1}})()&&e.push(s.REACT),function(){try{return!!window.angular||(!!document.querySelector(".ng-binding, [ng-app], [data-ng-app], [ng-controller], [data-ng-controller], [ng-repeat], [data-ng-repeat]")||!!document.querySelector('script[src*="angular.js"], script[src*="angular.min.js"]'))}catch(e){return!1}}()&&e.push(s.ANGULARJS),function(){try{return!!(window.hasOwnProperty("ng")&&window.ng.hasOwnProperty("coreTokens")&&window.ng.coreTokens.hasOwnProperty("NgZone"))||!!document.querySelectorAll("[ng-version]").length}catch(e){return!1}}()&&e.push(s.ANGULAR),window.Backbone&&e.push(s.BACKBONE),window.Ember&&e.push(s.EMBER),window.Vue&&e.push(s.VUE),window.Meteor&&e.push(s.METEOR),window.Zepto&&e.push(s.ZEPTO),window.jQuery&&e.push(s.JQUERY)}catch(e){}return e}var u=r(9548),d=r(9226),f=r(8226),l=r(2650),g=r(8544),p=r(6562),h=r(8610);const v={dedicated:Boolean(a._A?.Worker),shared:Boolean(a._A?.SharedWorker),service:Boolean(a._A?.navigator?.serviceWorker)};let m,b,y;var w=r(6034);var A,E,x;class O extends o.S{constructor(e,t){var r;let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,w.t,n),r=this,this.singleChecks(),this.eachSessionChecks(),(0,i.X)("record-supportability",(function(){return r.recordSupportability(...arguments)}),this.featureName,this.ee),(0,i.X)("record-custom",(function(){return r.recordCustom(...arguments)}),this.featureName,this.ee),this.importAggregator()}recordSupportability(e,t){var r=["sm",e,{name:e},t];return(0,n.p)("storeMetric",r,null,this.featureName,this.ee),r}recordCustom(e,t){var r=["cm",e,{name:e},t];return(0,n.p)("storeEventMetrics",r,null,this.featureName,this.ee),r}singleChecks(){this.recordSupportability("Generic/Version/".concat(f.q,"/Detected"));const{loaderType:e}=(0,p.OP)(this.agentIdentifier);e&&this.recordSupportability("Generic/LoaderType/".concat(e,"/Detected")),a.il&&(0,l.K)((()=>{c().forEach((e=>{this.recordSupportability("Framework/"+e+"/Detected")}))})),u.T.isFileProtocol()&&(this.recordSupportability("Generic/FileProtocol/Detected"),u.T.supportabilityMetricSent=!0);const t=(0,d.$c)(this.agentIdentifier);t.length>0&&this.recordSupportability("Generic/Obfuscate/Detected"),t.length>0&&!(0,d.Ng)(t)&&this.recordSupportability("Generic/Obfuscate/Invalid"),function(e){if(!m){if(v.dedicated){m=Worker;try{a._A.Worker=r(m,"Dedicated")}catch(e){o(e,"Dedicated")}if(v.shared){b=SharedWorker;try{a._A.SharedWorker=r(b,"Shared")}catch(e){o(e,"Shared")}}else n("Shared");if(v.service){y=navigator.serviceWorker.register;try{a._A.navigator.serviceWorker.register=(t=y,function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];return i("Service",r[1]?.type),t.apply(navigator.serviceWorker,r)})}catch(e){o(e,"Service")}}else n("Service");var t;return}n("All")}function r(e,t){return"undefined"==typeof Proxy?e:new Proxy(e,{construct:(e,r)=>(i(t,r[1]?.type),new e(...r))})}function n(t){a.v6||e("Workers/".concat(t,"/Unavailable"))}function i(t,r){e("Workers/".concat(t,"module"===r?"/Module":"/Classic"))}function o(t,r){e("Workers/".concat(r,"/SM/Unsupported")),(0,h.Z)("NR Agent: Unable to capture ".concat(r," workers."),t)}}(this.recordSupportability.bind(this))}eachSessionChecks(){a.il&&(0,g.bP)("pageshow",(e=>{e.persisted&&this.recordSupportability("Generic/BFCache/PageRestored")}))}}A=O,E="featureName",x=w.t,(E=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(E))in A?Object.defineProperty(A,E,{value:x,enumerable:!0,configurable:!0,writable:!0}):A[E]=x;var T={SUPPORTABILITY_METRIC:"sm",CUSTOM_METRIC:"cm"}},2484:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(2325).D.pageViewEvent},5637:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Instrument:()=>h});var n,i,o,a=r(9252),s=r(2053),c=r(8283),u=r(6625),d=r(6114),f=r(2650),l=r(2484),g=r(2325),p=r(2374);class h extends d.S{constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,l.t,r),p.il&&((0,u.v)(e),(0,c.B)(e,"firstbyte",(0,s.yf)()),(0,f.K)((()=>this.measureDomContentLoaded())),(0,f.b)((()=>this.measureWindowLoaded()),!0),this.importAggregator())}measureWindowLoaded(){var e=(0,s.zO)();(0,c.B)(this.agentIdentifier,"onload",e+(0,s.os)()),(0,a.p)("timing",["load",e],void 0,g.D.pageViewTiming,this.ee)}measureDomContentLoaded(){(0,c.B)(this.agentIdentifier,"domContent",(0,s.zO)()+(0,s.os)())}}n=h,i="featureName",o=l.t,(i=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(i))in n?Object.defineProperty(n,i,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[i]=o},6382:(e,t,r)=>{"use strict";r.d(t,{t:()=>n});const n=r(2325).D.pageViewTiming},7817:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Instrument:()=>h});var n,i,o,a=r(9252),s=r(6998),c=r(8544),u=r(2053),d=r(6562),f=r(6114),l=r(6382),g=r(2325),p=r(2374);class h extends f.S{constructor(e,t){var r;let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(super(e,t,l.t,n),r=this,p.il){if(this.pageHiddenTime=(0,s.e)(),this.performanceObserver,this.lcpPerformanceObserver,this.clsPerformanceObserver,this.fiRecorded=!1,"PerformanceObserver"in window&&"function"==typeof window.PerformanceObserver){this.performanceObserver=new PerformanceObserver((function(){return r.perfObserver(...arguments)}));try{this.performanceObserver.observe({entryTypes:["paint"]})}catch(e){}this.lcpPerformanceObserver=new PerformanceObserver((function(){return r.lcpObserver(...arguments)}));try{this.lcpPerformanceObserver.observe({entryTypes:["largest-contentful-paint"]})}catch(e){}this.clsPerformanceObserver=new PerformanceObserver((function(){return r.clsObserver(...arguments)}));try{this.clsPerformanceObserver.observe({type:"layout-shift",buffered:!0})}catch(e){}}this.fiRecorded=!1;["click","keydown","mousedown","pointerdown","touchstart"].forEach((e=>{(0,c.iz)(e,(function(){return r.captureInteraction(...arguments)}))})),(0,s.N)((()=>{this.pageHiddenTime=(0,u.zO)(),(0,a.p)("docHidden",[this.pageHiddenTime],void 0,g.D.pageViewTiming,this.ee)}),!0),(0,c.bP)("pagehide",(()=>(0,a.p)("winPagehide",[(0,u.zO)()],void 0,g.D.pageViewTiming,this.ee))),this.importAggregator()}}perfObserver(e,t){e.getEntries().forEach((e=>{"first-paint"===e.name?(0,a.p)("timing",["fp",Math.floor(e.startTime)],void 0,g.D.pageViewTiming,this.ee):"first-contentful-paint"===e.name&&(0,a.p)("timing",["fcp",Math.floor(e.startTime)],void 0,g.D.pageViewTiming,this.ee)}))}lcpObserver(e,t){var r=e.getEntries();if(r.length>0){var n=r[r.length-1];if(this.pageHiddenTime<n.startTime)return;var i=[n],o=this.addConnectionAttributes({});o&&i.push(o),(0,a.p)("lcp",i,void 0,g.D.pageViewTiming,this.ee)}}clsObserver(e){e.getEntries().forEach((e=>{e.hadRecentInput||(0,a.p)("cls",[e],void 0,g.D.pageViewTiming,this.ee)}))}addConnectionAttributes(e){var t=navigator.connection||navigator.mozConnection||navigator.webkitConnection;if(t)return t.type&&(e["net-type"]=t.type),t.effectiveType&&(e["net-etype"]=t.effectiveType),t.rtt&&(e["net-rtt"]=t.rtt),t.downlink&&(e["net-dlink"]=t.downlink),e}captureInteraction(e){if(e instanceof d.Yu.EV&&!this.fiRecorded){var t=Math.round(e.timeStamp),r={type:e.type};this.addConnectionAttributes(r),t<=(0,u.zO)()?r.fid=(0,u.zO)()-t:t>(0,u.os)()&&t<=Date.now()?(t-=(0,u.os)(),r.fid=(0,u.zO)()-t):t=(0,u.zO)(),this.fiRecorded=!0,(0,a.p)("timing",["fi",t,r],void 0,g.D.pageViewTiming,this.ee)}}}n=h,i="featureName",o=l.t,(i=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(i))in n?Object.defineProperty(n,i,{value:o,enumerable:!0,configurable:!0,writable:!0}):n[i]=o},1509:(e,t,r)=>{"use strict";r.d(t,{W:()=>s});var n=r(6562),i=r(3752),o=r(2384),a=r(6797);class s{constructor(e,t,r){this.agentIdentifier=e,this.aggregator=t,this.ee=i.ee.get(e,(0,n.OP)(this.agentIdentifier).isolatedBacklog),this.featureName=r,this.blocked=!1,this.checkConfiguration()}checkConfiguration(){if(!(0,n.lF)(this.agentIdentifier)){let e={...(0,a.gG)().info?.jsAttributes};try{e={...e,...(0,n.C5)(this.agentIdentifier)?.jsAttributes}}catch(e){}(0,o.j)(this.agentIdentifier,{...(0,a.gG)(),info:{...(0,a.gG)().info,jsAttributes:e}})}}}},6114:(e,t,r)=>{"use strict";r.d(t,{S:()=>c});var n=r(4329),i=r(1509),o=r(2650),a=r(2374),s=r(8610);class c extends i.W{constructor(e,t,r){let i=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];super(e,t,r),this.hasAggregator=!1,this.auto=i,this.abortHandler,i&&(0,n.R)(e,r)}importAggregator(){if(this.hasAggregator||!this.auto)return;this.hasAggregator=!0;const e=async()=>{try{const{lazyLoader:e}=await r.e(729).then(r.bind(r,8110)),{Aggregate:t}=await e(this.featureName,"aggregate");new t(this.agentIdentifier,this.aggregator)}catch(e){(0,s.Z)("Downloading ".concat(this.featureName," failed...")),this.abortHandler?.()}};a.v6?e():(0,o.b)((()=>e()),!0)}}},2384:(e,t,r)=>{"use strict";r.d(t,{j:()=>y});var n=r(8683),i=r.n(n),o=r(2325),a=r(6562),s=r(9252),c=r(7022),u=r(3752),d=r(2053),f=r(4329),l=r(2650),g=r(2374),p=r(8610);function h(e){["setErrorHandler","finished","addToTrace","inlineHit","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError"].forEach((t=>{e[t]=function(){for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];return function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];Object.values(e.initializedAgents).forEach((e=>{e.exposed&&e.api[t]&&e.api[t](...n)}))}(t,...n)}}))}var v=r(6797);const m={stn:o.D.sessionTrace,err:o.D.jserrors,ins:o.D.pageAction,spa:o.D.spa};const b={};function y(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,y=arguments.length>3?arguments[3]:void 0,{init:w,info:A,loader_config:E,runtime:x={loaderType:n},exposed:O=!0}=t;const T=(0,v.gG)();let S={};return A||(w=T.init,A=T.info,E=T.loader_config,S=T),g.v6&&(A.jsAttributes={...A.jsAttributes,isWorker:!0}),(0,a.CX)(e,A),(0,a.Dg)(e,w||{}),(0,a.GE)(e,E||{}),(0,a.sU)(e,x),function(e,t,n){n||(0,f.R)(e,"api"),h(t);var v=u.ee.get(e),m=v.get("tracer"),b="api-",y=b+"ixn-";function w(){}(0,c.D)(["setErrorHandler","finished","addToTrace","inlineHit","addRelease"],(function(e,r){t[r]=E(b,r,!0,"api")})),t.addPageAction=E(b,"addPageAction",!0,o.D.pageAction),t.setCurrentRouteName=E(b,"routeName",!0,o.D.spa),t.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,a.OP)(e).customTransaction=(r||"http://custom.transaction")+t,E(b,"setPageViewName",!0,"api")()},t.setCustomAttribute=function(t,r){const n=(0,a.C5)(e);return(0,a.CX)(e,{...n,jsAttributes:{...n.jsAttributes,[t]:r}}),E(b,"setCustomAttribute",!0,"api")()},t.interaction=function(){return(new w).get()};var A=w.prototype={createTracer:function(e,t){var r={},n=this,i="function"==typeof t;return(0,s.p)(y+"tracer",[(0,d.zO)(),e,r],n,o.D.spa,v),function(){if(m.emit((i?"":"no-")+"fn-start",[(0,d.zO)(),n,i],r),i)try{return t.apply(this,arguments)}catch(e){throw m.emit("fn-err",[arguments,this,"string"==typeof e?new Error(e):e],r),e}finally{m.emit("fn-end",[(0,d.zO)()],r)}}}};function E(e,t,r,n){return function(){return(0,s.p)("record-supportability",["API/"+t+"/called"],void 0,o.D.metrics,v),(0,s.p)(e+t,[(0,d.zO)()].concat(i()(arguments)),r?null:this,n,v),r?void 0:this}}function x(){r.e(439).then(r.bind(r,5692)).then((t=>{let{setAPI:r}=t;r(e),(0,f.L)(e,"api")})).catch((()=>(0,p.Z)("Downloading runtime APIs failed...")))}(0,c.D)("actionText,setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),(function(e,t){A[t]=E(y,t,void 0,o.D.spa)})),t.noticeError=function(e,t){"string"==typeof e&&(e=new Error(e)),(0,s.p)("record-supportability",["API/noticeError/called"],void 0,o.D.metrics,v),(0,s.p)("err",[e,(0,d.zO)(),!1,t],void 0,o.D.jserrors,v)},g.v6?x():(0,l.b)((()=>x()),!0)}(e,S,y),(0,v.Qy)(e,T,"api"),(0,v.Qy)(e,O,"exposed"),g.v6||((0,v.EZ)("activatedFeatures",b),(0,v.EZ)("setToken",(t=>function(e,t){var r=u.ee.get(t);e&&"object"==typeof e&&((0,c.D)(e,(function(e,t){if(!t)return(0,s.p)("block-"+e,[],void 0,m[e],r);t&&!b[e]&&((0,s.p)("feat-"+e,[],void 0,m[e],r),b[e]=!0)})),(0,f.L)(t,o.D.pageViewEvent))}(t,e)))),S}},909:(e,t,r)=>{"use strict";r.d(t,{Z:()=>i,q:()=>o});var n=r(2325);function i(e){switch(e){case n.D.ajax:return[n.D.jserrors];case n.D.sessionTrace:return[n.D.ajax,n.D.pageViewEvent];case n.D.pageViewTiming:return[n.D.pageViewEvent];default:return[]}}function o(e){return e===n.D.jserrors?[]:["auto"]}},2325:(e,t,r)=>{"use strict";r.d(t,{D:()=>n,p:()=>i});const n={ajax:"ajax",jserrors:"jserrors",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionTrace:"session_trace",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.ajax]:5,[n.sessionTrace]:6,[n.pageAction]:7,[n.spa]:8}},8683:e=>{e.exports=function(e,t,r){t||(t=0),void 0===r&&(r=e?e.length:0);for(var n=-1,i=r-t||0,o=Array(i<0?0:i);++n<i;)o[n]=e[t+n];return o}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>(({78:"page_action-aggregate",147:"metrics-aggregate",193:"session_trace-aggregate",225:"ajax-instrument",317:"jserrors-aggregate",348:"page_view_timing-aggregate",439:"async-api",578:"jserrors-instrument",729:"lazy-loader",757:"session_trace-instrument",786:"page_view_event-aggregate",873:"spa-aggregate",876:"spa-instrument",898:"ajax-aggregate",908:"page_action-instrument"}[e]||e)+"."+{78:"92657d87",118:"d37755e4",147:"b4a54ed9",193:"94c80cda",225:"1e8aaf7f",264:"bcaf68fc",317:"ef250e1c",348:"e791ce32",439:"6bb277af",578:"1eaebfa5",729:"48127245",757:"64f1d623",786:"29613e65",873:"6bec5056",876:"f3685aa9",898:"fc672923",908:"64360627"}[e]+"-1225.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var f=u[d];if(f.getAttribute("src")==r||f.getAttribute("data-webpack")==t+o){s=f;break}}s||(c=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r),e[r]=[n];var l=(t,n)=>{s.onerror=s.onload=null,clearTimeout(g);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},g=setTimeout(l.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=l.bind(null,s.onerror),s.onload=l.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={662:0,744:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=window.webpackChunkNRBA=window.webpackChunkNRBA||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})();var o={};(()=>{"use strict";i.r(o);var e=i(2325),t=i(6562);const r=Object.values(e.D);function n(e){const n={};return r.forEach((r=>{n[r]=function(e,r){return!1!==(0,t.Mt)(r,"".concat(e,".enabled"))}(r,e)})),n}var a=i(2384),s=i(909),c=i(9557),u=i(7022);class d extends c.w{constructor(e){super(e),this.aggregatedData={}}store(e,t,r,n,i){var o=this.getBucket(e,t,r,i);return o.metrics=function(e,t){t||(t={count:0});return t.count+=1,(0,u.D)(e,(function(e,r){t[e]=f(r,t[e])})),t}(n,o.metrics),o}merge(e,t,r,n,i){var o=this.getBucket(e,t,n,i);if(o.metrics){var a=o.metrics;a.count+=r.count,(0,u.D)(r,(function(e,t){if("count"!==e){var n=a[e],i=r[e];i&&!i.c?a[e]=f(i.t,n):a[e]=function(e,t){if(!t)return e;t.c||(t=l(t.t));return t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max),t.t+=e.t,t.sos+=e.sos,t.c+=e.c,t}(i,a[e])}}))}else o.metrics=r}storeMetric(e,t,r,n){var i=this.getBucket(e,t,r);return i.stats=f(n,i.stats),i}getBucket(e,t,r,n){this.aggregatedData[e]||(this.aggregatedData[e]={});var i=this.aggregatedData[e][t];return i||(i=this.aggregatedData[e][t]={params:r||{}},n&&(i.custom=n)),i}get(e,t){return t?this.aggregatedData[e]&&this.aggregatedData[e][t]:this.aggregatedData[e]}take(e){for(var t={},r="",n=!1,i=0;i<e.length;i++)t[r=e[i]]=g(this.aggregatedData[r]),t[r].length&&(n=!0),delete this.aggregatedData[r];return n?t:null}}function f(e,t){return null==e?function(e){e?e.c++:e={c:1};return e}(t):t?(t.c||(t=l(t.t)),t.c+=1,t.t+=e,t.sos+=e*e,e>t.max&&(t.max=e),e<t.min&&(t.min=e),t):{t:e}}function l(e){return{t:e,min:e,max:e,sos:e*e,c:1}}function g(e){return"object"!=typeof e?[]:(0,u.D)(e,p)}function p(e,t){return t}var h=i(6797),v=i(5526),m=i(8610);var b=i(5637),y=i(7817),w=i(600);new class{constructor(t){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,v.ky)(16);this.agentIdentifier=r,this.sharedAggregator=new d({agentIdentifier:this.agentIdentifier}),this.features={},this.desiredFeatures=t.features||[],this.desiredFeatures.sort(((t,r)=>e.p[t.featureName]-e.p[r.featureName])),Object.assign(this,(0,a.j)(this.agentIdentifier,t,t.loaderType||"agent")),this.start()}get config(){return{info:(0,t.C5)(this.agentIdentifier),init:(0,t.P_)(this.agentIdentifier),loader_config:(0,t.DL)(this.agentIdentifier),runtime:(0,t.OP)(this.agentIdentifier)}}start(){const e="features";try{const t=n(this.agentIdentifier);this.desiredFeatures.forEach((e=>{if(t[e.featureName]){const r=(0,s.Z)(e.featureName);r.every((e=>t[e]))||(0,m.Z)("".concat(e.featureName," is enabled but one or more dependent features has been disabled (").concat(JSON.stringify(r),"). This may cause unintended consequences or missing data...")),this.features[e.featureName]=new e(this.agentIdentifier,this.sharedAggregator)}})),(0,h.Qy)(this.agentIdentifier,this.features,e)}catch(t){(0,m.Z)("Failed to initialize all enabled instrument classes (agent aborted) -",t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,h.fP)();return delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.[e],delete this.sharedAggregator,delete r.ee?.get(this.agentIdentifier),!1}}}({features:[b.Instrument,y.Instrument,w.Instrument],loaderType:"lite"})})(),window.NRBA=o})();</script>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Lottery game completed for GCSE Computer Science Non-Exam Assessment">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@AdobePortfolio">
<meta property="og:title" content="Cameron McGrath-Johnston - Python Lottery">
<meta property="og:description" content="Lottery game completed for GCSE Computer Science Non-Exam Assessment">
<meta property="og:image" content="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/481aa053-14d5-42d1-8015-a86cc75afd06_rwc_0x28x774x580x774.png?h=2173373256d5417090105e0d26f6f2b7">
<link rel="icon" href="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/94d3241a-9f63-4c4c-aa54-07cd5529ef3c_carw_1x1x32.png?h=6152aeee485fe87ce09ec44401abd53d">
<link rel="stylesheet" href="dist\css\main.css" type="text/css">
<link rel="stylesheet" href="84cfff9d-0557-4884-8598-c2e4dd8aeffe\717829a48b5fad64747b7bf2f577ae731676585468.css?h=2b31486ec5c37ca87b54c20f4714e4a7" type="text/css">
<link rel="canonical" href="python-lottery.html">
<title>Cameron McGrath-Johnston - Python Lottery</title>
<script type="text/javascript" src="ik\bo6kgEpb_D1LNnF8Nx0epb37JFF6h2DQaO6PxT01fijfenwgfHYEBsJzwD9oFDIDWhJ3wQbDFeJ3ZQI3jR8yFc4KZRmKjDS3jDgywD8cFQqUjDMkwRycFQ9-mkG0dW83da4XZcNC-Av0jhNlOfG0SY4zwKuh-AmaOcuoSeNkieZzde8zOcFzdPUlpWgzS1s.js?cb=1f81a2f668f6077716c7aaad295d94bee95c90bb" async="" onload="
try {
window.Typekit.load();
} catch (e) {
console.warn('Typekit not loaded.');
}
"></script>
</head>
<body class="transition-enabled"> <div class='page-background-video page-background-video-with-panel'>
</div>
<div class="js-responsive-nav">
<div class="responsive-nav has-social">
<div class="close-responsive-click-area js-close-responsive-nav">
<div class="close-responsive-button"></div>
</div>
<nav class="nav-container" data-hover-hint="nav" data-hover-hint-placement="bottom-start">
<div class="gallery-title"><a href="home.html">Home</a></div>
<div class="gallery-title"><a href="portfolio.html">Portfolio</a></div>
<div class="page-title">
<a href="contact.html">Contact</a>
</div>
<div class="page-title">
<a href="resume.html">Résumé</a>
</div>
</nav>
<div class="social pf-nav-social" data-context="theme.nav" data-hover-hint="navSocialIcons" data-hover-hint-placement="bottom-start">
<ul>
</ul>
</div>
</div>
</div>
<header class="site-header js-site-header js-fixed-nav" data-context="theme.nav" data-hover-hint="nav" data-hover-hint-placement="top-start">
<nav class="nav-container" data-hover-hint="nav" data-hover-hint-placement="bottom-start">
<div class="gallery-title"><a href="home.html">Home</a></div>
<div class="gallery-title"><a href="portfolio.html">Portfolio</a></div>
<div class="page-title">
<a href="contact.html">Contact</a>
</div>
<div class="page-title">
<a href="resume.html">Résumé</a>
</div>
</nav>
<div class="logo-wrap" data-context="theme.logo.header" data-hover-hint="logo" data-hover-hint-placement="bottom-start">
<div class="logo e2e-site-logo-text logo-text ">
<a href="home.html" class="preserve-whitespace">Cameron MG-J</a>
</div>
</div>
<div class="social pf-nav-social" data-context="theme.nav" data-hover-hint="navSocialIcons" data-hover-hint-placement="bottom-start">
<ul>
</ul>
</div>
<div class="hamburger-click-area js-hamburger">
<div class="hamburger">
<i></i>
<i></i>
<i></i>
</div>
</div>
</header>
<div class="header-placeholder"></div>
<div class="site-wrap cfix js-site-wrap">
<div class="site-container">
<div class="site-content e2e-site-content">
<main>
<div class="page-container" data-context="page.page.container" data-hover-hint="pageContainer">
<section class="page standard-modules">
<header class="page-header content" data-context="pages" data-identity="id:p63ee30b99337db61ae529847b9c79049bf8f1ba3cb2fd1f98a993" data-hover-hint="pageHeader" data-hover-hint-id="p63ee30b99337db61ae529847b9c79049bf8f1ba3cb2fd1f98a993">
<h1 class="title preserve-whitespace e2e-site-logo-text">Python Lottery</h1>
<p class="description">Lottery game completed for GCSE Computer Science Non-Exam Assessment</p>
</header>
<div class="page-content js-page-content" data-context="pages" data-identity="id:p63ee30b99337db61ae529847b9c79049bf8f1ba3cb2fd1f98a993">
<div id="project-canvas" class="js-project-modules modules content">
<div id="project-modules">
<div class="project-module module embed project-module-embed js-js-project-module">
<div class="embed-dimensions" style="max-width: 1008px; max-height: 999px; margin: 0 auto;">
<div class="embed-aspect-ratio" style="padding-bottom: 99.11%; position: relative; height: 0;">
<iframe src="https://docs.google.com/document/d/1qzDYhwJAYD3AK_aqwBOcIxhtwhq0_bgh/edit?usp=sharing&ouid=117866602908095241766&rtpof=true&sd=true" style="position:absolute; top:0; left:0; width:100%; height:100%;" class="embed-content"></iframe>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="other-projects" data-context="page.page.other_pages" data-hover-hint="otherPages">
<div class="title-wrapper">
<div class="title-container">
<h3 class="other-projects-title preserve-whitespace">You may also like</h3>
</div>
</div>
<div class="project-covers">
<a class="project-cover js-project-cover-touch hold-space" href="blastonbury.html" data-context="pages" data-identity="id:p63ed28bbc090a4de440bd0f16b4e9e470f13a142be2c2f6aee16e">
<div class="cover-image-wrap">
<div class="cover-image">
<div class="cover cover-normal">
<img class="cover__img js-lazy" src="84cfff9d-0557-4884-8598-c2e4dd8aeffe\689bacf6-f382-4a0d-b5a7-bf381dce67b8_rwc_186x0x1106x830x32.png?h=64ee3e767bbb9f486b6112b3984076c5" data-src="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/689bacf6-f382-4a0d-b5a7-bf381dce67b8_rwc_186x0x1106x830x1106.png?h=124b35bc75657d8a66aa8ee57f60e69b" data-srcset="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/689bacf6-f382-4a0d-b5a7-bf381dce67b8_rwc_186x0x1106x830x640.png?h=63d8c233e4345d884fb1d2a3614685ab 640w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/689bacf6-f382-4a0d-b5a7-bf381dce67b8_rwc_186x0x1106x830x1280.png?h=9a9e0d1186eb564c0c33fb3e5882c147 1280w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/689bacf6-f382-4a0d-b5a7-bf381dce67b8_rwc_186x0x1106x830x1366.png?h=7fae904e8a4b227d382665f0e5eb4207 1366w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/689bacf6-f382-4a0d-b5a7-bf381dce67b8_rwc_186x0x1106x830x1106.png?h=124b35bc75657d8a66aa8ee57f60e69b 1920w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/689bacf6-f382-4a0d-b5a7-bf381dce67b8_rwc_186x0x1106x830x1106.png?h=124b35bc75657d8a66aa8ee57f60e69b 2560w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/689bacf6-f382-4a0d-b5a7-bf381dce67b8_rwc_186x0x1106x830x1106.png?h=124b35bc75657d8a66aa8ee57f60e69b 5120w" data-sizes="(max-width: 540px) 100vw, (max-width: 768px) 50vw, calc(1200px / 4)">
</div>
</div>
</div>
<div class="details-wrap">
<div class="details">
<div class="details-inner">
<div class="title preserve-whitespace">Blastonbury</div>
<div class="date">2022</div>
</div>
</div>
</div>
</a>
<a class="project-cover js-project-cover-touch hold-space" href="logic-gates.html" data-context="pages" data-identity="id:p63ee1fb9046499b016b86035b6bc5bc3b47a6268ec96523fb0834">
<div class="cover-image-wrap">
<div class="cover-image">
<div class="cover cover-normal">
<img class="cover__img js-lazy" src="84cfff9d-0557-4884-8598-c2e4dd8aeffe\61229626-5c85-433c-a664-cebad25bba5c_carw_4x3x32.png?h=22708e152640078040147784b251f729" data-src="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/61229626-5c85-433c-a664-cebad25bba5c_car_4x3.png?h=5452a6d03bb62559d87ba15d32a40d89" data-srcset="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/61229626-5c85-433c-a664-cebad25bba5c_carw_4x3x640.png?h=0b78720b5dd4772e48b4fc5da4e20d00 640w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/61229626-5c85-433c-a664-cebad25bba5c_carw_4x3x1280.png?h=79fb70e7927b1ccff1712f18fe3db225 1280w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/61229626-5c85-433c-a664-cebad25bba5c_carw_4x3x1366.png?h=545dde8267ae60db065d63a8ced857b6 1366w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/61229626-5c85-433c-a664-cebad25bba5c_carw_4x3x1920.png?h=a95023b1c75f567f76f9eedd8071050d 1920w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/61229626-5c85-433c-a664-cebad25bba5c_carw_4x3x2560.png?h=42986be4348757d887c31f3b3ca34888 2560w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/61229626-5c85-433c-a664-cebad25bba5c_carw_4x3x5120.png?h=9e9523404b7038ed744032f7e8d3a4ec 5120w" data-sizes="(max-width: 540px) 100vw, (max-width: 768px) 50vw, calc(1200px / 4)">
</div>
</div>
</div>
<div class="details-wrap">
<div class="details">
<div class="details-inner">
<div class="title preserve-whitespace">Logic gates</div>
<div class="date">2023</div>
</div>
</div>
</div>
</a>
<a class="project-cover js-project-cover-touch hold-space" href="python.html" data-context="pages" data-identity="id:p63ee2bdf17be25e6f83c41b87b32ccae4806baf3b4cf3100d9dcd">
<div class="cover-image-wrap">
<div class="cover-image">
<div class="cover cover-normal">
<img class="cover__img js-lazy" src="84cfff9d-0557-4884-8598-c2e4dd8aeffe\2f11b74c-2797-4af3-814b-09f59277d6a0_carw_4x3x32.png?h=902241b43d521c61a3ba4e60f08fafd7" data-src="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/2f11b74c-2797-4af3-814b-09f59277d6a0_car_4x3.png?h=2b59d5f4eeff1c087efc5a318390295e" data-srcset="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/2f11b74c-2797-4af3-814b-09f59277d6a0_carw_4x3x640.png?h=73441cfc6df2b72f8a522cc89b94f911 640w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/2f11b74c-2797-4af3-814b-09f59277d6a0_carw_4x3x1280.png?h=1ecb150c7d89f4efe4988bebd4e47795 1280w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/2f11b74c-2797-4af3-814b-09f59277d6a0_carw_4x3x1366.png?h=adcc1f57443cdc9f5a39b35c34067857 1366w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/2f11b74c-2797-4af3-814b-09f59277d6a0_carw_4x3x1920.png?h=9a50d922efd9b7d6c12e44971967295a 1920w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/2f11b74c-2797-4af3-814b-09f59277d6a0_carw_4x3x2560.png?h=40e7236272b96e82fb809b67e82251fe 2560w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/2f11b74c-2797-4af3-814b-09f59277d6a0_carw_4x3x5120.png?h=6d1b16c373f9f4461a1c55cdd8fde41e 5120w" data-sizes="(max-width: 540px) 100vw, (max-width: 768px) 50vw, calc(1200px / 4)">
</div>
</div>
</div>
<div class="details-wrap">
<div class="details">
<div class="details-inner">
<div class="title preserve-whitespace">Python</div>
<div class="date">2023</div>
</div>
</div>
</div>
</a>
<a class="project-cover js-project-cover-touch hold-space" href="error-catching.html" data-context="pages" data-identity="id:p63ee11a3293af0a5b5cd06eb85fceb8c9a143820c0ca39ea6a380">
<div class="cover-image-wrap">
<div class="cover-image">
<div class="cover cover-normal">
<img class="cover__img js-lazy" src="84cfff9d-0557-4884-8598-c2e4dd8aeffe\be4cf6f8-b00d-4540-b191-21aed1a0cd26_carw_4x3x32.png?h=b7add23e1d216fd1278326af7874236d" data-src="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/be4cf6f8-b00d-4540-b191-21aed1a0cd26_car_4x3.png?h=53557d4a8f7d982a3a64a8be2d145681" data-srcset="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/be4cf6f8-b00d-4540-b191-21aed1a0cd26_carw_4x3x640.png?h=025eb6d7f9ff9b4e800a73744075e68a 640w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/be4cf6f8-b00d-4540-b191-21aed1a0cd26_carw_4x3x1280.png?h=5c4e97b841a93cc920965067563810df 1280w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/be4cf6f8-b00d-4540-b191-21aed1a0cd26_carw_4x3x1366.png?h=9ff0bcfafb395fdd75adc9dcb01731b4 1366w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/be4cf6f8-b00d-4540-b191-21aed1a0cd26_carw_4x3x1920.png?h=9da21de14a6bf203265f63cd1ec29108 1920w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/be4cf6f8-b00d-4540-b191-21aed1a0cd26_carw_4x3x2560.png?h=32ebd93358b74400ea7ae6a985405bdd 2560w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/be4cf6f8-b00d-4540-b191-21aed1a0cd26_carw_4x3x5120.png?h=5a544c1e268455b487d3cee1f277cbd1 5120w" data-sizes="(max-width: 540px) 100vw, (max-width: 768px) 50vw, calc(1200px / 4)">
</div>
</div>
</div>
<div class="details-wrap">
<div class="details">
<div class="details-inner">
<div class="title preserve-whitespace">Error Catching</div>
<div class="date">2023</div>
</div>
</div>
</div>
</a>
<a class="project-cover js-project-cover-touch hold-space" href="product-design-project.html" data-context="pages" data-identity="id:p63ee32bcbbe181197357a174c81ac9925ccc228d178d953fa02f1">
<div class="cover-image-wrap">
<div class="cover-image">
<div class="cover cover-normal">
<img class="cover__img js-lazy" src="84cfff9d-0557-4884-8598-c2e4dd8aeffe\ffe36e8b-6f92-4d44-a3c9-beb49ea22268_rwc_109x0x572x429x32.png?h=7c3bc66c8b08426593c0e926eff72e43" data-src="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/ffe36e8b-6f92-4d44-a3c9-beb49ea22268_rwc_109x0x572x429x572.png?h=0e0570c1fd67574460c4693662e4da39" data-srcset="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/ffe36e8b-6f92-4d44-a3c9-beb49ea22268_rwc_109x0x572x429x640.png?h=e5ec824ae889b233dfc1fae86cfd9840 640w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/ffe36e8b-6f92-4d44-a3c9-beb49ea22268_rwc_109x0x572x429x572.png?h=0e0570c1fd67574460c4693662e4da39 1280w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/ffe36e8b-6f92-4d44-a3c9-beb49ea22268_rwc_109x0x572x429x572.png?h=0e0570c1fd67574460c4693662e4da39 1366w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/ffe36e8b-6f92-4d44-a3c9-beb49ea22268_rwc_109x0x572x429x572.png?h=0e0570c1fd67574460c4693662e4da39 1920w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/ffe36e8b-6f92-4d44-a3c9-beb49ea22268_rwc_109x0x572x429x572.png?h=0e0570c1fd67574460c4693662e4da39 2560w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/ffe36e8b-6f92-4d44-a3c9-beb49ea22268_rwc_109x0x572x429x572.png?h=0e0570c1fd67574460c4693662e4da39 5120w" data-sizes="(max-width: 540px) 100vw, (max-width: 768px) 50vw, calc(1200px / 4)">
</div>
</div>
</div>
<div class="details-wrap">
<div class="details">
<div class="details-inner">
<div class="title preserve-whitespace">Product Design Project</div>
<div class="date">2019</div>
</div>
</div>
</div>
</a>
<a class="project-cover js-project-cover-touch hold-space" href="assembly.html" data-context="pages" data-identity="id:p63ee1d0b9df11fab6c268c2e8f229ef21d72d2f0c02fbab2fc561">
<div class="cover-image-wrap">
<div class="cover-image">
<div class="cover cover-normal">
<img class="cover__img js-lazy" src="84cfff9d-0557-4884-8598-c2e4dd8aeffe\92ea410e-e0e5-4c11-835a-8e9f66e97119_carw_4x3x32.png?h=44ff47e4416857ce4b128843c87fb678" data-src="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/92ea410e-e0e5-4c11-835a-8e9f66e97119_car_4x3.png?h=b04a2a6c149f8e81af10c2741b99cbb8" data-srcset="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/92ea410e-e0e5-4c11-835a-8e9f66e97119_carw_4x3x640.png?h=62219c28881bd591781bd359c2fc0ba8 640w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/92ea410e-e0e5-4c11-835a-8e9f66e97119_carw_4x3x1280.png?h=6b470ecd3e8046ed9ebb8e96a5d1233e 1280w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/92ea410e-e0e5-4c11-835a-8e9f66e97119_carw_4x3x1366.png?h=0c00c22d881bd6fc894660e9dcd2c504 1366w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/92ea410e-e0e5-4c11-835a-8e9f66e97119_carw_4x3x1920.png?h=ca931e99749c741ac43f16ad4d0f129d 1920w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/92ea410e-e0e5-4c11-835a-8e9f66e97119_carw_4x3x2560.png?h=661c0b830f548b10f698b792910f7a7b 2560w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/92ea410e-e0e5-4c11-835a-8e9f66e97119_carw_4x3x5120.png?h=65f3bc4ea1f069ae38d181a554fe85fe 5120w" data-sizes="(max-width: 540px) 100vw, (max-width: 768px) 50vw, calc(1200px / 4)">
</div>
</div>
</div>
<div class="details-wrap">
<div class="details">
<div class="details-inner">
<div class="title preserve-whitespace">Assembly</div>
<div class="date">2022</div>
</div>
</div>
</div>
</a>
<a class="project-cover js-project-cover-touch hold-space" href="cad.html" data-context="pages" data-identity="id:p63ee7ba01213326db301ae9604b86872e261e79e6b80b6552de8d">
<div class="cover-image-wrap">
<div class="cover-image">
<div class="cover cover-normal">
<img class="cover__img js-lazy" src="84cfff9d-0557-4884-8598-c2e4dd8aeffe\65536cfa-6492-4643-9908-2fc2d2c014b2_carw_4x3x32.png?h=fecaa742b6dd702674af7464a093f7c0" data-src="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/65536cfa-6492-4643-9908-2fc2d2c014b2_car_4x3.png?h=adba20dcbd6a700ed1d819a2eab27a3e" data-srcset="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/65536cfa-6492-4643-9908-2fc2d2c014b2_carw_4x3x640.png?h=67474d55b4a47c808a4489e60a8c526f 640w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/65536cfa-6492-4643-9908-2fc2d2c014b2_carw_4x3x1280.png?h=b89a82642fcca3270c659d00d75fd4f7 1280w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/65536cfa-6492-4643-9908-2fc2d2c014b2_carw_4x3x1366.png?h=7ea3cf0631beced28c948b8c98e6979e 1366w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/65536cfa-6492-4643-9908-2fc2d2c014b2_carw_4x3x1920.png?h=54a7d0869509e7e04165c8219aa66603 1920w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/65536cfa-6492-4643-9908-2fc2d2c014b2_carw_4x3x2560.png?h=e8c44a738773533ef37fe52a50f40918 2560w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/65536cfa-6492-4643-9908-2fc2d2c014b2_carw_4x3x5120.png?h=e14eed9fb96e250502db2138f518a6e7 5120w" data-sizes="(max-width: 540px) 100vw, (max-width: 768px) 50vw, calc(1200px / 4)">
</div>
</div>
</div>
<div class="details-wrap">
<div class="details">
<div class="details-inner">
<div class="title preserve-whitespace">CAD</div>
<div class="date">2023</div>
</div>
</div>
</div>
</a>
<a class="project-cover js-project-cover-touch hold-space" href="virun.html" data-context="pages" data-identity="id:p63ed289178bdb4ef5ca713de08ba49155be25f4b60a65967b8ada">
<div class="cover-image-wrap">
<div class="cover-image">
<div class="cover cover-normal">
<img class="cover__img js-lazy" src="84cfff9d-0557-4884-8598-c2e4dd8aeffe\7694e409-65e4-4c9f-910c-b6b516d1c99d_rwc_121x101x229x172x32.png?h=806171818533972f539346b9bdf8b050" data-src="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/7694e409-65e4-4c9f-910c-b6b516d1c99d_rwc_121x101x229x172x229.png?h=0bb0f4677ce4fc910c021e21c6ddcf19" data-srcset="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/7694e409-65e4-4c9f-910c-b6b516d1c99d_rwc_121x101x229x172x229.png?h=0bb0f4677ce4fc910c021e21c6ddcf19 640w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/7694e409-65e4-4c9f-910c-b6b516d1c99d_rwc_121x101x229x172x229.png?h=0bb0f4677ce4fc910c021e21c6ddcf19 1280w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/7694e409-65e4-4c9f-910c-b6b516d1c99d_rwc_121x101x229x172x229.png?h=0bb0f4677ce4fc910c021e21c6ddcf19 1366w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/7694e409-65e4-4c9f-910c-b6b516d1c99d_rwc_121x101x229x172x229.png?h=0bb0f4677ce4fc910c021e21c6ddcf19 1920w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/7694e409-65e4-4c9f-910c-b6b516d1c99d_rwc_121x101x229x172x229.png?h=0bb0f4677ce4fc910c021e21c6ddcf19 2560w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/7694e409-65e4-4c9f-910c-b6b516d1c99d_rwc_121x101x229x172x229.png?h=0bb0f4677ce4fc910c021e21c6ddcf19 5120w" data-sizes="(max-width: 540px) 100vw, (max-width: 768px) 50vw, calc(1200px / 4)">
</div>
</div>
</div>
<div class="details-wrap">
<div class="details">
<div class="details-inner">
<div class="title preserve-whitespace">Virun</div>
<div class="date">2023</div>
</div>
</div>
</div>
</a>
<a class="project-cover js-project-cover-touch hold-space" href="fire.html" data-context="pages" data-identity="id:p63ed28ab312df1fe8253aad535f210a7add880309b0be5f803e7b">
<div class="cover-image-wrap">
<div class="cover-image">
<div class="cover cover-normal">
<img class="cover__img js-lazy" src="84cfff9d-0557-4884-8598-c2e4dd8aeffe\8b722179-3fc5-422e-af1b-67e1785ad973_carw_4x3x32.png?h=12e8259e88c71b845ae80efead685594" data-src="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/8b722179-3fc5-422e-af1b-67e1785ad973_car_4x3.png?h=240dc3e9152bdcbeba9f90776c1ade47" data-srcset="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/8b722179-3fc5-422e-af1b-67e1785ad973_carw_4x3x640.png?h=cdf72086a4657755a14895359bbad703 640w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/8b722179-3fc5-422e-af1b-67e1785ad973_carw_4x3x1280.png?h=13a414d9a5ed291f4601242d572ef426 1280w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/8b722179-3fc5-422e-af1b-67e1785ad973_carw_4x3x1366.png?h=2e15c6a08a9e6398cb36f51279c8395d 1366w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/8b722179-3fc5-422e-af1b-67e1785ad973_carw_4x3x1920.png?h=24f8a6ce54be5ba364812124c4b62ef9 1920w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/8b722179-3fc5-422e-af1b-67e1785ad973_carw_4x3x2560.png?h=86541b0ef7a88d1f7124fb1335b206ad 2560w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/8b722179-3fc5-422e-af1b-67e1785ad973_carw_4x3x5120.png?h=06dd49a97f0629d5af168f8ea440b249 5120w" data-sizes="(max-width: 540px) 100vw, (max-width: 768px) 50vw, calc(1200px / 4)">
</div>
</div>
</div>
<div class="details-wrap">
<div class="details">
<div class="details-inner">
<div class="title preserve-whitespace">FIRE</div>
<div class="date">2022</div>
</div>
</div>
</div>
</a>
<a class="project-cover js-project-cover-touch hold-space" href="html.html" data-context="pages" data-identity="id:p63ee22ee9981c18f06c60dce6cdc2bd05147f32f44cb02498792d">
<div class="cover-image-wrap">
<div class="cover-image">
<div class="cover cover-normal">
<img class="cover__img js-lazy" src="84cfff9d-0557-4884-8598-c2e4dd8aeffe\9a9fd2d3-bf4b-4f21-a550-7d55cc475b59_carw_4x3x32.png?h=bc27aecdc359c3813b2e25742bdc1ffc" data-src="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/9a9fd2d3-bf4b-4f21-a550-7d55cc475b59_car_4x3.png?h=883a0396a4cb1b75c508d7a6ea31752b" data-srcset="https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/9a9fd2d3-bf4b-4f21-a550-7d55cc475b59_carw_4x3x640.png?h=1978e2d183070ea0d20a577be9ed534c 640w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/9a9fd2d3-bf4b-4f21-a550-7d55cc475b59_carw_4x3x1280.png?h=aea27604d37c43569a18302abc2ee1a8 1280w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/9a9fd2d3-bf4b-4f21-a550-7d55cc475b59_carw_4x3x1366.png?h=2d3f86cb62ab36322b78daceeaf0c136 1366w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/9a9fd2d3-bf4b-4f21-a550-7d55cc475b59_carw_4x3x1920.png?h=41e6bf69cfe80e7c503b73d35a9d5fc8 1920w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/9a9fd2d3-bf4b-4f21-a550-7d55cc475b59_carw_4x3x2560.png?h=f5cc809b2332dad1c1ddc009781443a0 2560w, https://cdn.myportfolio.com/84cfff9d-0557-4884-8598-c2e4dd8aeffe/9a9fd2d3-bf4b-4f21-a550-7d55cc475b59_carw_4x3x5120.png?h=f3b8b46e671c6216e9e24d826d4d09bd 5120w" data-sizes="(max-width: 540px) 100vw, (max-width: 768px) 50vw, calc(1200px / 4)">
</div>
</div>
</div>
<div class="details-wrap">
<div class="details">
<div class="details-inner">
<div class="title preserve-whitespace">HTML, CSS, JS</div>
<div class="date">2022</div>
</div>
</div>
</div>
</a>
</div>
</section>
<section class="back-to-top" data-hover-hint="backToTop">
<a href="#"><span class="arrow">↑</span><span class="preserve-whitespace">Back to Top</span></a>
</section>
<a class="back-to-top-fixed js-back-to-top back-to-top-fixed-with-panel" data-hover-hint="backToTop" data-hover-hint-placement="top-start" href="#">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewbox="0 0 26 26" style="enable-background:new 0 0 26 26;" xml:space="preserve" class="icon icon-back-to-top">
<g>
<path d="M13.8,1.3L21.6,9c0.1,0.1,0.1,0.3,0.2,0.4c0.1,0.1,0.1,0.3,0.1,0.4s0,0.3-0.1,0.4c-0.1,0.1-0.1,0.3-0.3,0.4
c-0.1,0.1-0.2,0.2-0.4,0.3c-0.2,0.1-0.3,0.1-0.4,0.1c-0.1,0-0.3,0-0.4-0.1c-0.2-0.1-0.3-0.2-0.4-0.3L14.2,5l0,19.1
c0,0.2-0.1,0.3-0.1,0.5c0,0.1-0.1,0.3-0.3,0.4c-0.1,0.1-0.2,0.2-0.4,0.3c-0.1,0.1-0.3,0.1-0.5,0.1c-0.1,0-0.3,0-0.4-0.1
c-0.1-0.1-0.3-0.1-0.4-0.3c-0.1-0.1-0.2-0.2-0.3-0.4c-0.1-0.1-0.1-0.3-0.1-0.5l0-19.1l-5.7,5.7C6,10.8,5.8,10.9,5.7,11
c-0.1,0.1-0.3,0.1-0.4,0.1c-0.2,0-0.3,0-0.4-0.1c-0.1-0.1-0.3-0.2-0.4-0.3c-0.1-0.1-0.1-0.2-0.2-0.4C4.1,10.2,4,10.1,4.1,9.9
c0-0.1,0-0.3,0.1-0.4c0-0.1,0.1-0.3,0.3-0.4l7.7-7.8c0.1,0,0.2-0.1,0.2-0.1c0,0,0.1-0.1,0.2-0.1c0.1,0,0.2,0,0.2-0.1
c0.1,0,0.1,0,0.2,0c0,0,0.1,0,0.2,0c0.1,0,0.2,0,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1C13.7,1.2,13.8,1.2,13.8,1.3z"></path>
</g>
</svg>
</a>
</div>
</main>
</div>
</div>
</div>
<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"e7fb1b89a0","applicationID":"750147145","transactionName":"ZwZaYkJVDERXUxULCV5Me0NDQA1aGWsmJzJtQxdtS0QDQ14KT0gbbQ==","queueTime":0,"applicationTime":38,"atts":"S0FNFApPHxsUUUNYHU0e","errorBeacon":"bam.nr-data.net","agent":""}</script></body>
<script type="text/javascript">
// fix for Safari's back/forward cache
window.onpageshow = function(e) {
if (e.persisted) { window.location.reload(); }
};
</script>
<script type="text/javascript">var __config__ = {"page_id":"p63ee30b99337db61ae529847b9c79049bf8f1ba3cb2fd1f98a993","theme":{"name":"lukas"},"pageTransition":true,"linkTransition":true,"disableDownload":false,"localizedValidationMessages":{"required":"This field is required","Email":"This field must be a valid email address"},"lightbox":{"enabled":true,"color":{"opacity":0.94,"hex":"#fff"}},"cookie_banner":{"enabled":false}};</script>
<script type="text/javascript" src="site\translations.js?cb=1f81a2f668f6077716c7aaad295d94bee95c90bb"></script>
<script type="text/javascript" src="dist\js\main.js?cb=1f81a2f668f6077716c7aaad295d94bee95c90bb"></script>
</html>