From 099ccef4614d8b3ba19f44c50ef984631d161240 Mon Sep 17 00:00:00 2001 From: Shulhan Date: Thu, 25 Jan 2024 19:32:48 +0700 Subject: all: fix warnings recommended by linter revive Most of the fixes related to naming variables with acronyms, for example HTTP, JSON, URL, and so on. --- _www/functions.js | 24 +++++----- _www/functions.ts | 36 +++++++-------- _www/http_target.js | 16 +++---- _www/http_target.ts | 22 +++++----- _www/interface.ts | 30 ++++++------- _www/nav_links.ts | 4 +- _www/target.js | 42 +++++++++--------- _www/target.ts | 50 ++++++++++----------- _www/trunks.js | 32 +++++++------- _www/trunks.ts | 46 +++++++++---------- attack_result.go | 12 ++--- common.go | 2 +- errors.go | 6 +-- example/example.go | 108 ++++++++++++++++++++++++--------------------- form_input.go | 2 +- http_server.go | 54 +++++++++++++---------- http_target.go | 52 +++++++++++----------- key_form_input.go | 12 ++--- memfs_www_embed.go | 42 +++++++++--------- run_request.go | 22 +++++----- run_response.go | 12 ++--- target.go | 27 +++++++----- trunks.go | 124 ++++++++++++++++++++++++++-------------------------- 23 files changed, 397 insertions(+), 380 deletions(-) diff --git a/_www/functions.js b/_www/functions.js index 759ff91..220228e 100644 --- a/_www/functions.js +++ b/_www/functions.js @@ -51,7 +51,7 @@ export function generateFormInput(parent, fi) { break; } } -export function HttpMethodToString(m) { +export function HTTPMethodToString(m) { switch (m) { case 0: return "GET"; @@ -75,10 +75,10 @@ export function HttpMethodToString(m) { return "???"; } // -// loadHttpTargetHeader get HttpTarget header from local storage by key. -// If no header exist in storage return the one from HttpTarget itself. +// loadHTTPTargetHeader get HTTPTarget header from local storage by key. +// If no header exist in storage return the one from HTTPTarget itself. // -export function loadHttpTargetHeader(target, httpTarget, key) { +export function loadHTTPTargetHeader(target, httpTarget, key) { const storageKey = `${target.ID}.http.${httpTarget.ID}.header.${key}`; const val = window.localStorage.getItem(storageKey); if (val) { @@ -90,15 +90,15 @@ export function loadHttpTargetHeader(target, httpTarget, key) { } return ""; } -function saveHttpTargetHeader(target, httpTarget, key, value) { +function saveHTTPTargetHeader(target, httpTarget, key, value) { const storageKey = `${target.ID}.http.${httpTarget.ID}.header.${key}`; window.localStorage.setItem(storageKey, value); } // -// loadHttpTargetParam get HttpTarget parameter from local storage by key. -// If no parameter exist in storage return the one from HttpTarget itself. +// loadHTTPTargetParam get HTTPTarget parameter from local storage by key. +// If no parameter exist in storage return the one from HTTPTarget itself. // -export function loadHttpTargetParam(target, httpTarget, key) { +export function loadHTTPTargetParam(target, httpTarget, key) { const storageKey = `${target.ID}.http.${httpTarget.ID}.param.${key}`; const val = window.localStorage.getItem(storageKey); if (val) { @@ -110,7 +110,7 @@ export function loadHttpTargetParam(target, httpTarget, key) { } return ""; } -function saveHttpTargetParam(target, httpTarget, key, value) { +function saveHTTPTargetParam(target, httpTarget, key, value) { const storageKey = `${target.ID}.http.${httpTarget.ID}.param.${key}`; window.localStorage.setItem(storageKey, value); } @@ -210,7 +210,7 @@ function saveWsTargetParam(target, wsTarget, key, value) { window.localStorage.setItem(storageKey, value); } // -// save the variables on the Target, Params and Headers on HttpTarget or +// save the variables on the Target, Params and Headers on HTTPTarget or // WebSocket to local storage. // export function save(target, httpTarget, wsTarget) { @@ -222,10 +222,10 @@ export function save(target, httpTarget, wsTarget) { } if (httpTarget) { for (const [k, fi] of Object.entries(httpTarget.Headers)) { - saveHttpTargetHeader(target, httpTarget, k, fi.value); + saveHTTPTargetHeader(target, httpTarget, k, fi.value); } for (const [k, fi] of Object.entries(httpTarget.Params)) { - saveHttpTargetParam(target, httpTarget, k, fi.value); + saveHTTPTargetParam(target, httpTarget, k, fi.value); } } if (wsTarget) { diff --git a/_www/functions.ts b/_www/functions.ts index 64f68ff..f927f80 100644 --- a/_www/functions.ts +++ b/_www/functions.ts @@ -9,7 +9,7 @@ import { CLASS_INPUT_LABEL, FormInput, FormInputKindNumber, - HttpTargetInterface, + HTTPTargetInterface, TargetInterface, WebSocketTargetInterface, } from "./interface.js"; @@ -70,7 +70,7 @@ export function generateFormInput(parent: HTMLElement, fi: FormInput) { } } -export function HttpMethodToString(m: number): string { +export function HTTPMethodToString(m: number): string { switch (m) { case 0: return "GET"; @@ -95,12 +95,12 @@ export function HttpMethodToString(m: number): string { } // -// loadHttpTargetHeader get HttpTarget header from local storage by key. -// If no header exist in storage return the one from HttpTarget itself. +// loadHTTPTargetHeader get HTTPTarget header from local storage by key. +// If no header exist in storage return the one from HTTPTarget itself. // -export function loadHttpTargetHeader( +export function loadHTTPTargetHeader( target: TargetInterface, - httpTarget: HttpTargetInterface, + httpTarget: HTTPTargetInterface, key: string, ): string { const storageKey = `${target.ID}.http.${httpTarget.ID}.header.${key}`; @@ -115,9 +115,9 @@ export function loadHttpTargetHeader( return ""; } -function saveHttpTargetHeader( +function saveHTTPTargetHeader( target: TargetInterface, - httpTarget: HttpTargetInterface, + httpTarget: HTTPTargetInterface, key: string, value: string, ) { @@ -126,12 +126,12 @@ function saveHttpTargetHeader( } // -// loadHttpTargetParam get HttpTarget parameter from local storage by key. -// If no parameter exist in storage return the one from HttpTarget itself. +// loadHTTPTargetParam get HTTPTarget parameter from local storage by key. +// If no parameter exist in storage return the one from HTTPTarget itself. // -export function loadHttpTargetParam( +export function loadHTTPTargetParam( target: TargetInterface, - httpTarget: HttpTargetInterface, + httpTarget: HTTPTargetInterface, key: string, ): string { const storageKey = `${target.ID}.http.${httpTarget.ID}.param.${key}`; @@ -146,9 +146,9 @@ export function loadHttpTargetParam( return ""; } -function saveHttpTargetParam( +function saveHTTPTargetParam( target: TargetInterface, - httpTarget: HttpTargetInterface, + httpTarget: HTTPTargetInterface, key: string, value: string, ) { @@ -282,12 +282,12 @@ function saveWsTargetParam( } // -// save the variables on the Target, Params and Headers on HttpTarget or +// save the variables on the Target, Params and Headers on HTTPTarget or // WebSocket to local storage. // export function save( target: TargetInterface, - httpTarget: HttpTargetInterface | null, + httpTarget: HTTPTargetInterface | null, wsTarget: WebSocketTargetInterface | null, ) { saveTargetOptDuration(target); @@ -299,10 +299,10 @@ export function save( } if (httpTarget) { for (const [k, fi] of Object.entries(httpTarget.Headers)) { - saveHttpTargetHeader(target, httpTarget, k, fi.value); + saveHTTPTargetHeader(target, httpTarget, k, fi.value); } for (const [k, fi] of Object.entries(httpTarget.Params)) { - saveHttpTargetParam(target, httpTarget, k, fi.value); + saveHTTPTargetParam(target, httpTarget, k, fi.value); } } if (wsTarget) { diff --git a/_www/http_target.js b/_www/http_target.js index 7e3928a..ee3b395 100644 --- a/_www/http_target.js +++ b/_www/http_target.js @@ -2,7 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-or-later import { WuiInputSelect } from "./wui/input/select.js"; import { WuiInputString } from "./wui/input/string.js"; -import { generateFormInput, loadHttpTargetHeader, loadHttpTargetParam, } from "./functions.js"; +import { generateFormInput, loadHTTPTargetHeader, loadHTTPTargetParam, } from "./functions.js"; import { CLASS_INPUT, CLASS_INPUT_LABEL, } from "./interface.js"; const CLASS_HTTP_TARGET = "http_target"; const CLASS_HTTP_TARGET_ACTIONS = "http_target_actions"; @@ -15,7 +15,7 @@ const CLASS_HTTP_TARGET_OUT_ATTACK = "http_target_out_attack"; const CLASS_HTTP_TARGET_OUT_MONO = "http_target_out_mono"; const CLASS_HTTP_TARGET_OUT_RUN = "http_target_out_run"; const CONTENT_TYPE_JSON = "application/json"; -export class HttpTarget { +export class HTTPTarget { constructor(trunks, target, opts) { this.trunks = trunks; this.target = target; @@ -185,7 +185,7 @@ export class HttpTarget { legend.innerText = "Headers"; wrapper.appendChild(legend); for (const [key, fi] of Object.entries(this.opts.Headers)) { - fi.value = loadHttpTargetHeader(this.target, this.opts, key); + fi.value = loadHTTPTargetHeader(this.target, this.opts, key); generateFormInput(wrapper, fi); } parent.appendChild(wrapper); @@ -203,7 +203,7 @@ export class HttpTarget { title.innerText = "Parameters"; wrapper.appendChild(title); for (const [key, fi] of Object.entries(this.opts.Params)) { - fi.value = loadHttpTargetParam(this.target, this.opts, key); + fi.value = loadHTTPTargetParam(this.target, this.opts, key); generateFormInput(wrapper, fi); } parent.appendChild(wrapper); @@ -279,10 +279,10 @@ export class HttpTarget { } } async onClickAttack() { - await this.trunks.attackHttp(this.target, this.opts); + await this.trunks.attackHTTP(this.target, this.opts); } async onClickAttackDelete(result) { - const res = await this.trunks.attackHttpDelete(result.Name); + const res = await this.trunks.attackHTTPDelete(result.Name); if (!res) { return; } @@ -301,7 +301,7 @@ export class HttpTarget { elReportHist.style.display = "none"; return; } - const resJSON = await this.trunks.attackHttpGet(resultName); + const resJSON = await this.trunks.attackHTTPGet(resultName); if (resJSON.code != 200) { return; } @@ -318,7 +318,7 @@ export class HttpTarget { this.elOutResponseBody.innerText = "JSON formatted response body"; } async onClickRun() { - const res = await this.trunks.runHttp(this.target, this.opts); + const res = await this.trunks.runHTTP(this.target, this.opts); if (!res) { return; } diff --git a/_www/http_target.ts b/_www/http_target.ts index 69a76b8..62fe969 100644 --- a/_www/http_target.ts +++ b/_www/http_target.ts @@ -6,14 +6,14 @@ import { WuiInputString, WuiInputStringOpts } from "./wui/input/string.js"; import { generateFormInput, - loadHttpTargetHeader, - loadHttpTargetParam, + loadHTTPTargetHeader, + loadHTTPTargetParam, } from "./functions.js"; import { CLASS_INPUT, CLASS_INPUT_LABEL, AttackResult, - HttpTargetInterface, + HTTPTargetInterface, TargetInterface, TrunksInterface, } from "./interface.js"; @@ -32,7 +32,7 @@ const CLASS_HTTP_TARGET_OUT_RUN = "http_target_out_run"; const CONTENT_TYPE_JSON = "application/json"; -export class HttpTarget { +export class HTTPTarget { el: HTMLElement = document.createElement("div"); elButtonRun: HTMLButtonElement = document.createElement("button"); elButtonAttack: HTMLButtonElement = document.createElement("button"); @@ -46,7 +46,7 @@ export class HttpTarget { constructor( public trunks: TrunksInterface, public target: TargetInterface, - public opts: HttpTargetInterface, + public opts: HTTPTargetInterface, ) { this.el.id = opts.ID; this.el.classList.add(CLASS_HTTP_TARGET); @@ -223,7 +223,7 @@ export class HttpTarget { wrapper.appendChild(legend); for (const [key, fi] of Object.entries(this.opts.Headers)) { - fi.value = loadHttpTargetHeader(this.target, this.opts, key); + fi.value = loadHTTPTargetHeader(this.target, this.opts, key); generateFormInput(wrapper, fi); } @@ -246,7 +246,7 @@ export class HttpTarget { wrapper.appendChild(title); for (const [key, fi] of Object.entries(this.opts.Params)) { - fi.value = loadHttpTargetParam(this.target, this.opts, key); + fi.value = loadHTTPTargetParam(this.target, this.opts, key); generateFormInput(wrapper, fi); } @@ -352,11 +352,11 @@ export class HttpTarget { } private async onClickAttack() { - await this.trunks.attackHttp(this.target, this.opts); + await this.trunks.attackHTTP(this.target, this.opts); } private async onClickAttackDelete(result: AttackResult) { - const res = await this.trunks.attackHttpDelete(result.Name); + const res = await this.trunks.attackHTTPDelete(result.Name); if (!res) { return; } @@ -382,7 +382,7 @@ export class HttpTarget { return; } - const resJSON = await this.trunks.attackHttpGet(resultName); + const resJSON = await this.trunks.attackHTTPGet(resultName); if (resJSON.code != 200) { return; } @@ -405,7 +405,7 @@ export class HttpTarget { } private async onClickRun() { - const res = await this.trunks.runHttp(this.target, this.opts); + const res = await this.trunks.runHTTP(this.target, this.opts); if (!res) { return; } diff --git a/_www/interface.ts b/_www/interface.ts index bc12b87..2b756b9 100644 --- a/_www/interface.ts +++ b/_www/interface.ts @@ -20,7 +20,7 @@ export interface AttackOptionsInterface { export interface AttackResult { TargetID: string; - HttpTargetID: string; + HTTPTargetID: string; Name: string; TextReport: string; HistReport: string; @@ -44,13 +44,13 @@ export interface FormInput { min?: number; } -export interface HttpResponseInterface { +export interface HTTPResponseInterface { code: number; message: string; data?: any; // eslint-disable-line @typescript-eslint/no-explicit-any } -export interface HttpTargetInterface { +export interface HTTPTargetInterface { Name: string; Hint?: string; ID: string; @@ -85,7 +85,7 @@ export interface NavLinkInterface { export interface RunRequestInterface { Target: TargetInterface; - HttpTarget: HttpTargetInterface | null; + HTTPTarget: HTTPTargetInterface | null; WebSocketTarget: WebSocketTargetInterface | null; Result?: AttackResult | null; } @@ -103,26 +103,26 @@ export interface TargetInterface { ID: string; Name: string; Hint?: string; - BaseUrl: string; + BaseURL: string; Opts: AttackOptionsInterface; Vars: KeyFormInput; - HttpTargets: HttpTargetInterface[]; + HTTPTargets: HTTPTargetInterface[]; WebSocketTargets: WebSocketTargetInterface[]; } export interface TrunksInterface { - attackHttp( + attackHTTP( target: TargetInterface, - http_target: HttpTargetInterface, - ): Promise; + http_target: HTTPTargetInterface, + ): Promise; - attackHttpDelete(name: string): Promise; + attackHTTPDelete(name: string): Promise; - attackHttpGet(name: string): Promise; + attackHTTPGet(name: string): Promise; contentRenderer( target: TargetInterface, - http_target: HttpTargetInterface | null, + http_target: HTTPTargetInterface | null, ws_target: WebSocketTargetInterface | null, nav_link: NavLinkInterface | null, el: HTMLElement, @@ -130,15 +130,15 @@ export interface TrunksInterface { setContent(path: string, el: HTMLElement | null): void; - runHttp( + runHTTP( target: TargetInterface, - http_target: HttpTargetInterface, + http_target: HTTPTargetInterface, ): Promise; runWebSocket( target: TargetInterface, WebSocketTargetInterface: WebSocketTargetInterface, - ): Promise; + ): Promise; } export interface WebSocketTargetInterface { diff --git a/_www/nav_links.ts b/_www/nav_links.ts index 73b6873..4acd7b6 100644 --- a/_www/nav_links.ts +++ b/_www/nav_links.ts @@ -65,10 +65,10 @@ export class NavLinks { const target: TargetInterface = { ID: "nav", Name: "", - BaseUrl: "", + BaseURL: "", Opts: {} as AttackOptionsInterface, Vars: {} as KeyFormInput, - HttpTargets: [], + HTTPTargets: [], WebSocketTargets: [], }; this.trunks.contentRenderer(target, null, null, nav, this.elContent); diff --git a/_www/target.js b/_www/target.js index 587333f..aebdd8a 100644 --- a/_www/target.js +++ b/_www/target.js @@ -4,7 +4,7 @@ import { WuiInputNumber } from "./wui/input/number.js"; import { WuiInputString } from "./wui/input/string.js"; import { generateFormInput, loadTargetOptDuration, loadTargetOptRatePerSecond, loadTargetOptTimeout, loadTargetVar, } from "./functions.js"; import { CLASS_INPUT, CLASS_INPUT_LABEL, CLASS_NAV_TARGET, } from "./interface.js"; -import { HttpTarget } from "./http_target.js"; +import { HTTPTarget } from "./http_target.js"; import { WebSocketTarget } from "./ws_target.js"; const CLASS_NAV_TARGET_HTTP = "nav_http_target"; const CLASS_NAV_TARGET_WS = "nav_ws_target"; @@ -27,16 +27,16 @@ export class Target { trunks.contentRenderer(this.opts, null, null, null, this.elContent); }; this.elNav.appendChild(elTargetMenu); - if (this.opts.HttpTargets) { - for (const ht of this.opts.HttpTargets) { - const elTargetHttp = document.createElement("div"); - elTargetHttp.innerHTML = ht.Name; - elTargetHttp.id = `/http/${this.opts.ID}/${ht.ID}`; - elTargetHttp.classList.add(CLASS_NAV_TARGET_HTTP); - elTargetHttp.onclick = () => { + if (this.opts.HTTPTargets) { + for (const ht of this.opts.HTTPTargets) { + const elTargetHTTP = document.createElement("div"); + elTargetHTTP.innerHTML = ht.Name; + elTargetHTTP.id = `/http/${this.opts.ID}/${ht.ID}`; + elTargetHTTP.classList.add(CLASS_NAV_TARGET_HTTP); + elTargetHTTP.onclick = () => { trunks.contentRenderer(this.opts, ht, null, null, this.elContent); }; - this.elNav.appendChild(elTargetHttp); + this.elNav.appendChild(elTargetHTTP); } } if (this.opts.WebSocketTargets) { @@ -56,7 +56,7 @@ export class Target { this.generateContentBaseURL(); this.generateContentAttackOptions(); this.generateContentVars(); - this.generateHttpTargets(trunks); + this.generateHTTPTargets(trunks); this.generateWebSocketTargets(trunks); } generateContentBaseURL() { @@ -65,24 +65,24 @@ export class Target { hdrTarget.id = this.opts.ID; const elHint = document.createElement("p"); elHint.innerHTML = this.opts.Hint || ""; - const optsBaseUrl = { + const optsBaseURL = { label: "Base URL", hint: "The base URL where the HTTP request will be send or the target of attack.", - value: this.opts.BaseUrl, + value: this.opts.BaseURL, class_input: CLASS_INPUT, class_label: CLASS_INPUT_LABEL, is_hint_toggled: true, is_disabled: true, onChangeHandler: (v) => { - this.opts.BaseUrl = v; + this.opts.BaseURL = v; }, }; - const comInputBaseUrl = new WuiInputString(optsBaseUrl); + const comInputBaseURL = new WuiInputString(optsBaseURL); this.elContent.appendChild(hdrTarget); if (this.opts.Hint) { this.elContent.appendChild(elHint); } - this.elContent.appendChild(comInputBaseUrl.el); + this.elContent.appendChild(comInputBaseURL.el); } generateContentAttackOptions() { const wrapper = document.createElement("fieldset"); @@ -147,14 +147,14 @@ export class Target { } this.elContent.appendChild(wrapper); } - generateHttpTargets(trunks) { - if (!this.opts.HttpTargets) { + generateHTTPTargets(trunks) { + if (!this.opts.HTTPTargets) { return; } - this.opts.HttpTargets.forEach((httpTarget) => { - const comHttpTarget = new HttpTarget(trunks, this.opts, httpTarget); - this.http_targets[httpTarget.ID] = comHttpTarget; - this.elContent.appendChild(comHttpTarget.el); + this.opts.HTTPTargets.forEach((httpTarget) => { + const comHTTPTarget = new HTTPTarget(trunks, this.opts, httpTarget); + this.http_targets[httpTarget.ID] = comHTTPTarget; + this.elContent.appendChild(comHTTPTarget.el); }); } generateWebSocketTargets(trunks) { diff --git a/_www/target.ts b/_www/target.ts index 58eedff..daf2652 100644 --- a/_www/target.ts +++ b/_www/target.ts @@ -15,19 +15,19 @@ import { CLASS_INPUT, CLASS_INPUT_LABEL, CLASS_NAV_TARGET, - HttpTargetInterface, + HTTPTargetInterface, TargetInterface, TrunksInterface, WebSocketTargetInterface, } from "./interface.js"; -import { HttpTarget } from "./http_target.js"; +import { HTTPTarget } from "./http_target.js"; import { WebSocketTarget } from "./ws_target.js"; const CLASS_NAV_TARGET_HTTP = "nav_http_target"; const CLASS_NAV_TARGET_WS = "nav_ws_target"; -interface MapHttpTarget { - [key: string]: HttpTarget; +interface MapHTTPTarget { + [key: string]: HTTPTarget; } interface MapWebSocketTarget { @@ -38,7 +38,7 @@ export class Target { elNav: HTMLElement = document.createElement("div"); elContent: HTMLElement = document.createElement("div"); - http_targets: MapHttpTarget = {}; + http_targets: MapHTTPTarget = {}; ws_targets: MapWebSocketTarget = {}; constructor( @@ -60,16 +60,16 @@ export class Target { this.elNav.appendChild(elTargetMenu); - if (this.opts.HttpTargets) { - for (const ht of this.opts.HttpTargets) { - const elTargetHttp = document.createElement("div"); - elTargetHttp.innerHTML = ht.Name; - elTargetHttp.id = `/http/${this.opts.ID}/${ht.ID}`; - elTargetHttp.classList.add(CLASS_NAV_TARGET_HTTP); - elTargetHttp.onclick = () => { + if (this.opts.HTTPTargets) { + for (const ht of this.opts.HTTPTargets) { + const elTargetHTTP = document.createElement("div"); + elTargetHTTP.innerHTML = ht.Name; + elTargetHTTP.id = `/http/${this.opts.ID}/${ht.ID}`; + elTargetHTTP.classList.add(CLASS_NAV_TARGET_HTTP); + elTargetHTTP.onclick = () => { trunks.contentRenderer(this.opts, ht, null, null, this.elContent); }; - this.elNav.appendChild(elTargetHttp); + this.elNav.appendChild(elTargetHTTP); } } @@ -91,7 +91,7 @@ export class Target { this.generateContentBaseURL(); this.generateContentAttackOptions(); this.generateContentVars(); - this.generateHttpTargets(trunks); + this.generateHTTPTargets(trunks); this.generateWebSocketTargets(trunks); } @@ -103,25 +103,25 @@ export class Target { const elHint = document.createElement("p"); elHint.innerHTML = this.opts.Hint || ""; - const optsBaseUrl: WuiInputStringOpts = { + const optsBaseURL: WuiInputStringOpts = { label: "Base URL", hint: "The base URL where the HTTP request will be send or the target of attack.", - value: this.opts.BaseUrl, + value: this.opts.BaseURL, class_input: CLASS_INPUT, class_label: CLASS_INPUT_LABEL, is_hint_toggled: true, is_disabled: true, onChangeHandler: (v: string) => { - this.opts.BaseUrl = v; + this.opts.BaseURL = v; }, }; - const comInputBaseUrl = new WuiInputString(optsBaseUrl); + const comInputBaseURL = new WuiInputString(optsBaseURL); this.elContent.appendChild(hdrTarget); if (this.opts.Hint) { this.elContent.appendChild(elHint); } - this.elContent.appendChild(comInputBaseUrl.el); + this.elContent.appendChild(comInputBaseURL.el); } private generateContentAttackOptions() { @@ -198,16 +198,16 @@ export class Target { this.elContent.appendChild(wrapper); } - private generateHttpTargets(trunks: TrunksInterface) { - if (!this.opts.HttpTargets) { + private generateHTTPTargets(trunks: TrunksInterface) { + if (!this.opts.HTTPTargets) { return; } - this.opts.HttpTargets.forEach((httpTarget: HttpTargetInterface) => { - const comHttpTarget = new HttpTarget(trunks, this.opts, httpTarget); - this.http_targets[httpTarget.ID] = comHttpTarget; + this.opts.HTTPTargets.forEach((httpTarget: HTTPTargetInterface) => { + const comHTTPTarget = new HTTPTarget(trunks, this.opts, httpTarget); + this.http_targets[httpTarget.ID] = comHTTPTarget; - this.elContent.appendChild(comHttpTarget.el); + this.elContent.appendChild(comHTTPTarget.el); }); } diff --git a/_www/trunks.js b/_www/trunks.js index 8e8eaac..bae22fe 100644 --- a/_www/trunks.js +++ b/_www/trunks.js @@ -198,22 +198,22 @@ export class Trunks { this.elAttackRunning.innerHTML = "-"; return; } - if (!runRequest.Target || !runRequest.HttpTarget) { + if (!runRequest.Target || !runRequest.HTTPTarget) { this.elAttackRunning.innerHTML = "-"; return; } this.elAttackRunning.innerHTML = ` ${runRequest.Target.Name}
- / ${runRequest.HttpTarget.Name}
+ / ${runRequest.HTTPTarget.Name}

`; this.elAttackCancel.onclick = () => { this.onClickAttackCancel(); }; this.elAttackRunning.appendChild(this.elAttackCancel); - wuiNotif.info(`Attacking "${runRequest.Target.Name}/${runRequest.HttpTarget.Name}" ...`); + wuiNotif.info(`Attacking "${runRequest.Target.Name}/${runRequest.HTTPTarget.Name}" ...`); } - async attackHttp(target, httpTarget) { + async attackHTTP(target, httpTarget) { save(target, httpTarget, null); const attackReq = { Target: { @@ -221,11 +221,11 @@ export class Trunks { Opts: target.Opts, Vars: target.Vars, Name: target.Name, - BaseUrl: target.BaseUrl, - HttpTargets: [], + BaseURL: target.BaseURL, + HTTPTargets: [], WebSocketTargets: [], }, - HttpTarget: { + HTTPTarget: { ID: httpTarget.ID, Name: httpTarget.Name, Method: httpTarget.Method, @@ -254,7 +254,7 @@ export class Trunks { this.setAttackRunning(attackReq); return jsonRes; } - async attackHttpDelete(name) { + async attackHTTPDelete(name) { const msg = `Are you sure you want to delete the result: ${name}?`; const yes = window.confirm(msg); if (!yes) { @@ -271,7 +271,7 @@ export class Trunks { } return jsonRes; } - async attackHttpGet(name) { + async attackHTTPGet(name) { const url = API_ATTACK_RESULT + "?name=" + name; const fres = await fetch(url); const res = await fres.json(); @@ -295,7 +295,7 @@ export class Trunks { this.elContent.innerHTML = ""; this.elContent.appendChild(el); } - async runHttp(target, httpTarget) { + async runHTTP(target, httpTarget) { save(target, httpTarget, null); const req = { Target: { @@ -303,11 +303,11 @@ export class Trunks { Opts: target.Opts, Vars: target.Vars, Name: "", - BaseUrl: "", - HttpTargets: [], + BaseURL: "", + HTTPTargets: [], WebSocketTargets: [], }, - HttpTarget: httpTarget, + HTTPTarget: httpTarget, WebSocketTarget: null, }; const httpRes = await fetch(API_TARGET_RUN_HTTP, { @@ -339,11 +339,11 @@ export class Trunks { Opts: target.Opts, Vars: target.Vars, Name: "", - BaseUrl: "", - HttpTargets: [], + BaseURL: "", + HTTPTargets: [], WebSocketTargets: [], }, - HttpTarget: null, + HTTPTarget: null, WebSocketTarget: wsTarget, }; const fres = await fetch(API_TARGET_RUN_WEBSOCKET, { diff --git a/_www/trunks.ts b/_www/trunks.ts index 30549f2..c35977c 100644 --- a/_www/trunks.ts +++ b/_www/trunks.ts @@ -6,8 +6,8 @@ import { save } from "./functions.js"; import { HASH_ENVIRONMENT, EnvironmentInterface, - HttpResponseInterface, - HttpTargetInterface, + HTTPResponseInterface, + HTTPTargetInterface, NavLinkInterface, RunRequestInterface, RunResponseInterface, @@ -266,13 +266,13 @@ export class Trunks { this.elAttackRunning.innerHTML = "-"; return; } - if (!runRequest.Target || !runRequest.HttpTarget) { + if (!runRequest.Target || !runRequest.HTTPTarget) { this.elAttackRunning.innerHTML = "-"; return; } this.elAttackRunning.innerHTML = ` ${runRequest.Target.Name}
- / ${runRequest.HttpTarget.Name}
+ / ${runRequest.HTTPTarget.Name}

`; this.elAttackCancel.onclick = () => { @@ -281,14 +281,14 @@ export class Trunks { this.elAttackRunning.appendChild(this.elAttackCancel); wuiNotif.info( - `Attacking "${runRequest.Target.Name}/${runRequest.HttpTarget.Name}" ...`, + `Attacking "${runRequest.Target.Name}/${runRequest.HTTPTarget.Name}" ...`, ); } - async attackHttp( + async attackHTTP( target: TargetInterface, - httpTarget: HttpTargetInterface, - ): Promise { + httpTarget: HTTPTargetInterface, + ): Promise { save(target, httpTarget, null); const attackReq: RunRequestInterface = { @@ -297,11 +297,11 @@ export class Trunks { Opts: target.Opts, Vars: target.Vars, Name: target.Name, - BaseUrl: target.BaseUrl, - HttpTargets: [], + BaseURL: target.BaseURL, + HTTPTargets: [], WebSocketTargets: [], }, - HttpTarget: { + HTTPTarget: { ID: httpTarget.ID, Name: httpTarget.Name, Method: httpTarget.Method, @@ -334,7 +334,7 @@ export class Trunks { return jsonRes; } - async attackHttpDelete(name: string): Promise { + async attackHTTPDelete(name: string): Promise { const msg = `Are you sure you want to delete the result: ${name}?`; const yes = window.confirm(msg); if (!yes) { @@ -353,7 +353,7 @@ export class Trunks { return jsonRes; } - async attackHttpGet(name: string): Promise { + async attackHTTPGet(name: string): Promise { const url = API_ATTACK_RESULT + "?name=" + name; const fres = await fetch(url); const res = await fres.json(); @@ -365,7 +365,7 @@ export class Trunks { contentRenderer( target: TargetInterface, - httpTarget: HttpTargetInterface, + httpTarget: HTTPTargetInterface, wsTarget: WebSocketTargetInterface, navLink: NavLinkInterface, el: HTMLElement, @@ -384,9 +384,9 @@ export class Trunks { this.elContent.appendChild(el); } - async runHttp( + async runHTTP( target: TargetInterface, - httpTarget: HttpTargetInterface, + httpTarget: HTTPTargetInterface, ): Promise { save(target, httpTarget, null); @@ -396,11 +396,11 @@ export class Trunks { Opts: target.Opts, Vars: target.Vars, Name: "", - BaseUrl: "", - HttpTargets: [], + BaseURL: "", + HTTPTargets: [], WebSocketTargets: [], }, - HttpTarget: httpTarget, + HTTPTarget: httpTarget, WebSocketTarget: null, }; @@ -432,7 +432,7 @@ export class Trunks { async runWebSocket( target: TargetInterface, wsTarget: WebSocketTargetInterface, - ): Promise { + ): Promise { save(target, null, wsTarget); const req: RunRequestInterface = { @@ -441,11 +441,11 @@ export class Trunks { Opts: target.Opts, Vars: target.Vars, Name: "", - BaseUrl: "", - HttpTargets: [], + BaseURL: "", + HTTPTargets: [], WebSocketTargets: [], }, - HttpTarget: null, + HTTPTarget: null, WebSocketTarget: wsTarget, }; diff --git a/attack_result.go b/attack_result.go index 26f1a9d..4902885 100644 --- a/attack_result.go +++ b/attack_result.go @@ -32,7 +32,7 @@ type AttackResult struct { hist *vegeta.Histogram TargetID string // ID of Target. - HttpTargetID string // ID of HTTP target which own the result. + HTTPTargetID string // ID of HTTP target which own the result. Name string // Name of output file without path. fullpath string @@ -49,13 +49,13 @@ func newAttackResult(env *Environment, rr *RunRequest) ( logp := "newAttackResult" ar = &AttackResult{ TargetID: rr.Target.ID, - HttpTargetID: rr.HttpTarget.ID, + HTTPTargetID: rr.HTTPTarget.ID, metrics: &vegeta.Metrics{}, hist: &vegeta.Histogram{}, } ar.Name = fmt.Sprintf("%s.%s.%s.%dx%s.%s.bin", - rr.Target.ID, rr.HttpTarget.ID, + rr.Target.ID, rr.HTTPTarget.ID, time.Now().Format(outputSuffixDate), rr.Target.Opts.RatePerSecond, rr.Target.Opts.Duration, env.ResultsSuffix) @@ -99,14 +99,14 @@ func (ar *AttackResult) cancel() { if ar.fout != nil { err := ar.fout.Close() if err != nil { - mlog.Errf(`AttackResult.cancel %s: %s`, ar.HttpTargetID, err) + mlog.Errf(`AttackResult.cancel %s: %s`, ar.HTTPTargetID, err) } ar.fout = nil if len(ar.fullpath) > 0 { err = os.Remove(ar.fullpath) if err != nil { - mlog.Errf(`AttackResult.cancel %s: %s`, ar.HttpTargetID, err) + mlog.Errf(`AttackResult.cancel %s: %s`, ar.HTTPTargetID, err) } } } @@ -126,7 +126,7 @@ func (ar *AttackResult) finish() (err error) { if ar.fout != nil { err = ar.fout.Close() if err != nil { - return fmt.Errorf("%s: %w", ar.HttpTargetID, err) + return fmt.Errorf(`%s: %w`, ar.HTTPTargetID, err) } ar.fout = nil } diff --git a/common.go b/common.go index 629975f..9982509 100644 --- a/common.go +++ b/common.go @@ -10,7 +10,7 @@ import ( // generateID replace non-letter and non-number from input string with '_'. func generateID(in string) (out string) { - var r []rune = make([]rune, 0, len(in)) + var r = make([]rune, 0, len(in)) in = strings.ToLower(in) for _, c := range in { if unicode.IsLetter(c) || unicode.IsNumber(c) { diff --git a/errors.go b/errors.go index 2da10e6..614cd87 100644 --- a/errors.go +++ b/errors.go @@ -16,7 +16,7 @@ func errAttackConflict(rr *RunRequest) error { E: liberrors.E{ Code: http.StatusConflict, Message: fmt.Sprintf(`Another attack is already running: "%s/%s`, - rr.Target.Name, rr.HttpTarget.Name), + rr.Target.Name, rr.HTTPTarget.Name), Name: "ERR_ATTACK_CONFLICT", }, Data: rr, @@ -76,11 +76,11 @@ func errInvalidTarget(id string) error { return res } -func errInvalidHttpTarget(id string) error { +func errInvalidHTTPTarget(id string) error { res := &libhttp.EndpointResponse{ E: liberrors.E{ Code: http.StatusBadRequest, - Message: fmt.Sprintf("invalid or emtpy HttpTarget.ID: %q", id), + Message: fmt.Sprintf("invalid or emtpy HTTPTarget.ID: %q", id), Name: "ERR_INVALID_HTTP_TARGET", }, } diff --git a/example/example.go b/example/example.go index 1be51ef..f67d94c 100644 --- a/example/example.go +++ b/example/example.go @@ -42,7 +42,7 @@ const ( type requestResponse struct { Method string - Url string + URL string Headers http.Header Form url.Values MultipartForm *multipart.Form @@ -175,10 +175,10 @@ func (ex *Example) registerWebSocketEndpoints() (err error) { } func (ex *Example) registerTargets() (err error) { - targetHttp := &trunks.Target{ + var targetHTTP = &trunks.Target{ Name: "Example HTTP", Hint: "This section provide an example of HTTP endpoints that can be tested and attacked.", - BaseUrl: fmt.Sprintf("http://%s", ex.trunks.Env.ListenAddress), + BaseURL: fmt.Sprintf(`http://%s`, ex.trunks.Env.ListenAddress), Opts: &trunks.AttackOptions{ Duration: 300 * time.Second, RatePerSecond: 1, @@ -191,7 +191,7 @@ func (ex *Example) registerTargets() (err error) { Value: "1", }, }, - HttpTargets: []*trunks.HttpTarget{{ + HTTPTargets: []*trunks.HTTPTarget{{ Name: "HTTP Get", Hint: fmt.Sprintf("Test or attack endpoint %q using HTTP GET.", pathExample), Method: libhttp.RequestMethodGet, @@ -319,7 +319,7 @@ func (ex *Example) registerTargets() (err error) { }}, } - err = ex.trunks.RegisterTarget(targetHttp) + err = ex.trunks.RegisterTarget(targetHTTP) if err != nil { return err } @@ -327,7 +327,7 @@ func (ex *Example) registerTargets() (err error) { targetWebSocket := &trunks.Target{ Name: "Example WebSocket", Hint: "This section provide an example of WebSocket endpoints that can be tested.", - BaseUrl: fmt.Sprintf("ws://%s", websocketAddress), + BaseURL: fmt.Sprintf(`ws://%s`, websocketAddress), Opts: &trunks.AttackOptions{}, Vars: trunks.KeyFormInput{ "WebSocketVar": trunks.FormInput{ @@ -385,7 +385,7 @@ func (ex *Example) registerNavLinks() (err error) { func (ex *Example) pathExampleGet(epr *libhttp.EndpointRequest) ([]byte, error) { data := &requestResponse{ Method: epr.HttpRequest.Method, - Url: epr.HttpRequest.URL.String(), + URL: epr.HttpRequest.URL.String(), Headers: epr.HttpRequest.Header, Form: epr.HttpRequest.Form, MultipartForm: epr.HttpRequest.MultipartForm, @@ -407,7 +407,7 @@ func (ex *Example) pathExampleErrorGet(_ *libhttp.EndpointRequest) ([]byte, erro func (ex *Example) pathExamplePost(epr *libhttp.EndpointRequest) (resb []byte, err error) { data := &requestResponse{ Method: epr.HttpRequest.Method, - Url: epr.HttpRequest.URL.String(), + URL: epr.HttpRequest.URL.String(), Headers: epr.HttpRequest.Header, Form: epr.HttpRequest.Form, MultipartForm: epr.HttpRequest.MultipartForm, @@ -423,23 +423,27 @@ func (ex *Example) pathExamplePost(epr *libhttp.EndpointRequest) (resb []byte, e } func (ex *Example) runExampleGet(req *trunks.RunRequest) (res *trunks.RunResponse, err error) { - if req.Target.HttpClient == nil { - httpcOpts := &libhttp.ClientOptions{ - ServerUrl: req.Target.BaseUrl, + if req.Target.HTTPClient == nil { + var httpcOpts = &libhttp.ClientOptions{ + ServerUrl: req.Target.BaseURL, AllowInsecure: true, } - req.Target.HttpClient = libhttp.NewClient(httpcOpts) + req.Target.HTTPClient = libhttp.NewClient(httpcOpts) } res = &trunks.RunResponse{} - headers := req.HttpTarget.Headers.ToHttpHeader() - params := req.HttpTarget.Params.ToUrlValues() + var ( + headers = req.HTTPTarget.Headers.ToHTTPHeader() + params = req.HTTPTarget.Params.ToURLValues() + + httpRequest *http.Request + ) - httpRequest, err := req.Target.HttpClient.GenerateHttpRequest( - req.HttpTarget.Method, - req.HttpTarget.Path, - req.HttpTarget.RequestType, + httpRequest, err = req.Target.HTTPClient.GenerateHttpRequest( + req.HTTPTarget.Method, + req.HTTPTarget.Path, + req.HTTPTarget.RequestType, headers, params, ) @@ -447,17 +451,19 @@ func (ex *Example) runExampleGet(req *trunks.RunRequest) (res *trunks.RunRespons return nil, err } - err = res.SetHttpRequest(httpRequest) + err = res.SetHTTPRequest(httpRequest) if err != nil { return nil, err } - httpResponse, _, err := req.Target.HttpClient.Do(httpRequest) + var httpResponse *http.Response + + httpResponse, _, err = req.Target.HTTPClient.Do(httpRequest) if err != nil { return nil, err } - err = res.SetHttpResponse(httpResponse) + err = res.SetHTTPResponse(httpResponse) if err != nil { return nil, err } @@ -467,12 +473,12 @@ func (ex *Example) runExampleGet(req *trunks.RunRequest) (res *trunks.RunRespons func (ex *Example) preattackExampleErrorGet(rr *trunks.RunRequest) { ex.targetExampleErrorGet = vegeta.Target{ - Method: rr.HttpTarget.Method.String(), - URL: fmt.Sprintf("%s%s", rr.Target.BaseUrl, rr.HttpTarget.Path), - Header: rr.HttpTarget.Headers.ToHttpHeader(), + Method: rr.HTTPTarget.Method.String(), + URL: fmt.Sprintf("%s%s", rr.Target.BaseURL, rr.HTTPTarget.Path), + Header: rr.HTTPTarget.Headers.ToHTTPHeader(), } - q := rr.HttpTarget.Params.ToUrlValues().Encode() + q := rr.HTTPTarget.Params.ToURLValues().Encode() if len(q) > 0 { ex.targetExampleErrorGet.URL += "?" + q } @@ -482,12 +488,12 @@ func (ex *Example) preattackExampleErrorGet(rr *trunks.RunRequest) { func (ex *Example) preattackExampleGet(rr *trunks.RunRequest) { ex.targetExampleGet = vegeta.Target{ - Method: rr.HttpTarget.Method.String(), - URL: fmt.Sprintf("%s%s", rr.Target.BaseUrl, rr.HttpTarget.Path), - Header: rr.HttpTarget.Headers.ToHttpHeader(), + Method: rr.HTTPTarget.Method.String(), + URL: fmt.Sprintf("%s%s", rr.Target.BaseURL, rr.HTTPTarget.Path), + Header: rr.HTTPTarget.Headers.ToHTTPHeader(), } - q := rr.HttpTarget.Params.ToUrlValues().Encode() + q := rr.HTTPTarget.Params.ToURLValues().Encode() if len(q) > 0 { ex.targetExampleGet.URL += "?" + q } @@ -497,40 +503,40 @@ func (ex *Example) preattackExampleGet(rr *trunks.RunRequest) { func (ex *Example) attackExampleErrorGet(rr *trunks.RunRequest) vegeta.Targeter { return func(tgt *vegeta.Target) error { - rr.HttpTarget.Lock() + rr.HTTPTarget.Lock() *tgt = ex.targetExampleErrorGet - rr.HttpTarget.Unlock() + rr.HTTPTarget.Unlock() return nil } } func (ex *Example) attackExampleGet(rr *trunks.RunRequest) vegeta.Targeter { return func(tgt *vegeta.Target) error { - rr.HttpTarget.Lock() + rr.HTTPTarget.Lock() *tgt = ex.targetExampleGet - rr.HttpTarget.Unlock() + rr.HTTPTarget.Unlock() return nil } } func (ex *Example) runExamplePostForm(req *trunks.RunRequest) (res *trunks.RunResponse, err error) { - if req.Target.HttpClient == nil { + if req.Target.HTTPClient == nil { httpcOpts := &libhttp.ClientOptions{ - ServerUrl: req.Target.BaseUrl, + ServerUrl: req.Target.BaseURL, AllowInsecure: true, } - req.Target.HttpClient = libhttp.NewClient(httpcOpts) + req.Target.HTTPClient = libhttp.NewClient(httpcOpts) } res = &trunks.RunResponse{} - headers := req.HttpTarget.Headers.ToHttpHeader() - params := req.HttpTarget.Params.ToUrlValues() + headers := req.HTTPTarget.Headers.ToHTTPHeader() + params := req.HTTPTarget.Params.ToURLValues() - httpRequest, err := req.Target.HttpClient.GenerateHttpRequest( - req.HttpTarget.Method, - req.HttpTarget.Path, - req.HttpTarget.RequestType, + httpRequest, err := req.Target.HTTPClient.GenerateHttpRequest( + req.HTTPTarget.Method, + req.HTTPTarget.Path, + req.HTTPTarget.RequestType, headers, params, ) @@ -538,17 +544,17 @@ func (ex *Example) runExamplePostForm(req *trunks.RunRequest) (res *trunks.RunRe return nil, err } - err = res.SetHttpRequest(httpRequest) + err = res.SetHTTPRequest(httpRequest) if err != nil { return nil, err } - httpResponse, _, err := req.Target.HttpClient.Do(httpRequest) + httpResponse, _, err := req.Target.HTTPClient.Do(httpRequest) if err != nil { return nil, err } - err = res.SetHttpResponse(httpResponse) + err = res.SetHTTPResponse(httpResponse) if err != nil { return nil, err } @@ -558,12 +564,12 @@ func (ex *Example) runExamplePostForm(req *trunks.RunRequest) (res *trunks.RunRe func (ex *Example) preattackExamplePostForm(rr *trunks.RunRequest) { ex.targetExamplePostForm = vegeta.Target{ - Method: rr.HttpTarget.Method.String(), - URL: fmt.Sprintf("%s%s", rr.Target.BaseUrl, rr.HttpTarget.Path), - Header: rr.HttpTarget.Headers.ToHttpHeader(), + Method: rr.HTTPTarget.Method.String(), + URL: fmt.Sprintf("%s%s", rr.Target.BaseURL, rr.HTTPTarget.Path), + Header: rr.HTTPTarget.Headers.ToHTTPHeader(), } - q := rr.HttpTarget.Params.ToUrlValues().Encode() + q := rr.HTTPTarget.Params.ToURLValues().Encode() if len(q) > 0 { ex.targetExamplePostForm.Body = []byte(q) } @@ -573,9 +579,9 @@ func (ex *Example) preattackExamplePostForm(rr *trunks.RunRequest) { func (ex *Example) attackExamplePostForm(rr *trunks.RunRequest) vegeta.Targeter { return func(tgt *vegeta.Target) error { - rr.HttpTarget.Lock() + rr.HTTPTarget.Lock() *tgt = ex.targetExamplePostForm - rr.HttpTarget.Unlock() + rr.HTTPTarget.Unlock() return nil } } diff --git a/form_input.go b/form_input.go index 9934f51..9576c98 100644 --- a/form_input.go +++ b/form_input.go @@ -9,7 +9,7 @@ type FormInputKind string // List of valid value for field FormInput.Kind. const ( // FormInputKindBoolean only used for convertion, for example - // ToJsonObject. + // ToJSONObject. // In the WUI, it will be rendered as string. FormInputKindBoolean = `boolean` FormInputKindNumber = `number` diff --git a/http_server.go b/http_server.go index 4b89358..37c5988 100644 --- a/http_server.go +++ b/http_server.go @@ -12,6 +12,12 @@ import ( "github.com/shuLhan/share/lib/memfs" ) +// List of HTTP APIs. +const ( + pathAPIAttackHTTP = `/_trunks/api/attack/http` + pathAPIAttackResult = `/_trunks/api/attack/result` +) + // List of HTTP APIs provided by Trunks HTTP server. var ( apiEnvironmentGet = &libhttp.Endpoint{ @@ -21,13 +27,13 @@ var ( ResponseType: libhttp.ResponseTypeJSON, } - apiAttackHttp = libhttp.Endpoint{ + apiAttackHTTP = libhttp.Endpoint{ Method: libhttp.RequestMethodPost, Path: `/_trunks/api/attack/http`, RequestType: libhttp.RequestTypeJSON, ResponseType: libhttp.ResponseTypeJSON, } - apiAttackHttpCancel = libhttp.Endpoint{ + apiAttackHTTPCancel = libhttp.Endpoint{ Method: libhttp.RequestMethodDelete, Path: `/_trunks/api/attack/http`, RequestType: libhttp.RequestTypeJSON, @@ -36,13 +42,13 @@ var ( apiAttackResultDelete = &libhttp.Endpoint{ Method: libhttp.RequestMethodDelete, - Path: pathApiAttackResult, + Path: pathAPIAttackResult, RequestType: libhttp.RequestTypeJSON, ResponseType: libhttp.ResponseTypeJSON, } apiAttackResultGet = &libhttp.Endpoint{ Method: libhttp.RequestMethodGet, - Path: pathApiAttackResult, + Path: pathAPIAttackResult, RequestType: libhttp.RequestTypeQuery, ResponseType: libhttp.ResponseTypeJSON, } @@ -54,7 +60,7 @@ var ( ResponseType: libhttp.ResponseTypeJSON, } - apiTargetRunHttp = &libhttp.Endpoint{ + apiTargetRunHTTP = &libhttp.Endpoint{ Method: libhttp.RequestMethodPost, Path: "/_trunks/api/target/run/http", RequestType: libhttp.RequestTypeJSON, @@ -75,8 +81,8 @@ var ( } ) -func (trunks *Trunks) initHttpServer(isDevelopment bool) (err error) { - logp := "initHttpServer" +func (trunks *Trunks) initHTTPServer(isDevelopment bool) (err error) { + var logp = `initHTTPServer` if memfsWWW == nil { mfsOptions := memfs.Options{ @@ -110,14 +116,14 @@ func (trunks *Trunks) initHttpServer(isDevelopment bool) (err error) { return fmt.Errorf("%s: %w", logp, err) } - apiAttackHttp.Call = trunks.apiAttackHttp - err = trunks.Httpd.RegisterEndpoint(&apiAttackHttp) + apiAttackHTTP.Call = trunks.apiAttackHTTP + err = trunks.Httpd.RegisterEndpoint(&apiAttackHTTP) if err != nil { return fmt.Errorf(`%s: %w`, logp, err) } - apiAttackHttpCancel.Call = trunks.apiAttackHttpCancel - err = trunks.Httpd.RegisterEndpoint(&apiAttackHttpCancel) + apiAttackHTTPCancel.Call = trunks.apiAttackHTTPCancel + err = trunks.Httpd.RegisterEndpoint(&apiAttackHTTPCancel) if err != nil { return fmt.Errorf(`%s: %w`, logp, err) } @@ -139,8 +145,8 @@ func (trunks *Trunks) initHttpServer(isDevelopment bool) (err error) { return fmt.Errorf("%s: %w", logp, err) } - apiTargetRunHttp.Call = trunks.apiTargetRunHttp - err = trunks.Httpd.RegisterEndpoint(apiTargetRunHttp) + apiTargetRunHTTP.Call = trunks.apiTargetRunHTTP + err = trunks.Httpd.RegisterEndpoint(apiTargetRunHTTP) if err != nil { return fmt.Errorf("%s: %w", logp, err) } @@ -167,7 +173,7 @@ func (trunks *Trunks) apiEnvironmentGet(_ *libhttp.EndpointRequest) (resbody []b return json.Marshal(&res) } -// apiAttackHttp request to attack HTTP target. +// apiAttackHTTP request to attack HTTP target. // // Request format, // @@ -185,9 +191,9 @@ func (trunks *Trunks) apiEnvironmentGet(_ *libhttp.EndpointRequest) (resbody []b // Response codes, // - 200 OK: success. // - 500 ERR_INTERNAL: internal server error. -func (trunks *Trunks) apiAttackHttp(epr *libhttp.EndpointRequest) (resbody []byte, err error) { +func (trunks *Trunks) apiAttackHTTP(epr *libhttp.EndpointRequest) (resbody []byte, err error) { var ( - logp = `apiAttackHttp` + logp = `apiAttackHTTP` runRequest = &RunRequest{} ) @@ -196,7 +202,7 @@ func (trunks *Trunks) apiAttackHttp(epr *libhttp.EndpointRequest) (resbody []byt return nil, fmt.Errorf(`%s: %w`, logp, err) } - err = trunks.AttackHttp(runRequest) + err = trunks.AttackHTTP(runRequest) if err != nil { return nil, fmt.Errorf(`%s: %w`, logp, err) } @@ -213,7 +219,7 @@ func (trunks *Trunks) apiAttackHttp(epr *libhttp.EndpointRequest) (resbody []byt return resbody, nil } -// apiAttackHttpCancel request to cancel the running attack on HTTP target. +// apiAttackHTTPCancel request to cancel the running attack on HTTP target. // // Request format, // @@ -228,13 +234,13 @@ func (trunks *Trunks) apiAttackHttp(epr *libhttp.EndpointRequest) (resbody []byt // Response codes, // - 200 OK: success, return the RunRequest object that has been cancelled. // - 500 ERR_INTERNAL: internal server error. -func (trunks *Trunks) apiAttackHttpCancel(_ *libhttp.EndpointRequest) (resbody []byte, err error) { +func (trunks *Trunks) apiAttackHTTPCancel(_ *libhttp.EndpointRequest) (resbody []byte, err error) { var ( - logp = `apiAttackHttpCancel` + logp = `apiAttackHTTPCancel` runRequest *RunRequest ) - runRequest, err = trunks.AttackHttpCancel() + runRequest, err = trunks.AttackHTTPCancel() if err != nil { return nil, fmt.Errorf(`%s: %w`, logp, err) } @@ -243,7 +249,7 @@ func (trunks *Trunks) apiAttackHttpCancel(_ *libhttp.EndpointRequest) (resbody [ res.Code = http.StatusOK res.Name = `OK_ATTACK_HTTP_CANCEL` res.Message = fmt.Sprintf(`Attack on target "%s/%s" has been canceled`, - runRequest.Target.Name, runRequest.HttpTarget.Name) + runRequest.Target.Name, runRequest.HTTPTarget.Name) res.Data = runRequest resbody, err = json.Marshal(res) @@ -305,14 +311,14 @@ func (trunks *Trunks) apiNavLinks(_ *libhttp.EndpointRequest) (resbody []byte, e return json.Marshal(&res) } -func (trunks *Trunks) apiTargetRunHttp(epr *libhttp.EndpointRequest) ([]byte, error) { +func (trunks *Trunks) apiTargetRunHTTP(epr *libhttp.EndpointRequest) ([]byte, error) { req := &RunRequest{} err := json.Unmarshal(epr.RequestBody, req) if err != nil { return nil, errInternal(err) } - res, err := trunks.RunHttp(req) + res, err := trunks.RunHTTP(req) if err != nil { return nil, errInternal(err) } diff --git a/http_target.go b/http_target.go index 0ce1265..62ba582 100644 --- a/http_target.go +++ b/http_target.go @@ -18,32 +18,32 @@ import ( vegeta "github.com/tsenart/vegeta/v12/lib" ) -// HttpConvertParams is a handler that will be called inside the Run handler +// HTTPConvertParams is a handler that will be called inside the Run handler // to convert the Params values to type that will be send as request. -type HttpConvertParams func(target *HttpTarget) (interface{}, error) +type HTTPConvertParams func(target *HTTPTarget) (interface{}, error) -// HttpRunHandler define the function type that will be called when client +// HTTPRunHandler define the function type that will be called when client // send request to run the HTTP target. -type HttpRunHandler func(rr *RunRequest) (runres *RunResponse, err error) +type HTTPRunHandler func(rr *RunRequest) (runres *RunResponse, err error) -// HttpAttackHandler define the function type that will be called when client +// HTTPAttackHandler define the function type that will be called when client // send request to attack HTTP target. -type HttpAttackHandler func(rr *RunRequest) vegeta.Targeter +type HTTPAttackHandler func(rr *RunRequest) vegeta.Targeter -// HttpPreAttackHandler define the function type that will be called before +// HTTPPreAttackHandler define the function type that will be called before // the actual Attack being called. -type HttpPreAttackHandler func(rr *RunRequest) +type HTTPPreAttackHandler func(rr *RunRequest) -// HttpTarget define the HTTP endpoint that can be attached to Trunks. -type HttpTarget struct { +// HTTPTarget define the HTTP endpoint that can be attached to Trunks. +type HTTPTarget struct { Params KeyFormInput - ConvertParams HttpConvertParams `json:"-"` + ConvertParams HTTPConvertParams `json:"-"` Headers KeyFormInput - Run HttpRunHandler `json:"-"` - PreAttack HttpPreAttackHandler `json:"-"` - Attack HttpAttackHandler `json:"-"` + Run HTTPRunHandler `json:"-"` + PreAttack HTTPPreAttackHandler `json:"-"` + Attack HTTPAttackHandler `json:"-"` // ID of target, optional. // If its empty, it will generated using value from Name. @@ -61,7 +61,7 @@ type HttpTarget struct { // AllowAttack if its true the "Attack" button will be showed on user // interface and client will be allowed to run load testing on this - // HttpTarget. + // HTTPTarget. AllowAttack bool // IsCustomizable allow client to modify the Method, Path, and @@ -69,9 +69,9 @@ type HttpTarget struct { IsCustomizable bool } -// clone the source HttpTarget. +// clone the source HTTPTarget. // This method is provided to prevent the sync.Mutex being copied. -func (ht *HttpTarget) clone(src *HttpTarget) { +func (ht *HTTPTarget) clone(src *HTTPTarget) { ht.Params = src.Params ht.ConvertParams = src.ConvertParams ht.Headers = src.Headers @@ -89,9 +89,9 @@ func (ht *HttpTarget) clone(src *HttpTarget) { ht.IsCustomizable = src.IsCustomizable } -func (ht *HttpTarget) init() (err error) { +func (ht *HTTPTarget) init() (err error) { if len(ht.Name) == 0 { - return fmt.Errorf("HttpTarget.Name is empty") + return fmt.Errorf(`HTTPTarget.Name is empty`) } if len(ht.ID) == 0 { @@ -109,7 +109,7 @@ func (ht *HttpTarget) init() (err error) { return nil } -func (ht *HttpTarget) deleteResult(result *AttackResult) { +func (ht *HTTPTarget) deleteResult(result *AttackResult) { var x int for ; x < len(ht.Results); x++ { if ht.Results[x].Name == result.Name { @@ -132,9 +132,9 @@ func (ht *HttpTarget) deleteResult(result *AttackResult) { } } -func (ht *HttpTarget) addResult(dir, name string) { +func (ht *HTTPTarget) addResult(dir, name string) { ar := &AttackResult{ - HttpTargetID: ht.ID, + HTTPTargetID: ht.ID, Name: name, fullpath: filepath.Join(dir, name), } @@ -142,7 +142,7 @@ func (ht *HttpTarget) addResult(dir, name string) { ht.Results = append(ht.Results, ar) } -func (ht *HttpTarget) getResultByName(name string) (result *AttackResult) { +func (ht *HTTPTarget) getResultByName(name string) (result *AttackResult) { for _, result = range ht.Results { if result.Name == name { return result @@ -155,7 +155,7 @@ func (ht *HttpTarget) getResultByName(name string) (result *AttackResult) { // The key is sub-path that start with ":", for example "/:name", the key is // name. // The key in Params will be deleted if its exists in Path. -func (ht *HttpTarget) paramsToPath() { +func (ht *HTTPTarget) paramsToPath() { var ( logp = `paramsToPath` @@ -189,13 +189,13 @@ func (ht *HttpTarget) paramsToPath() { ht.Path = rute.String() } -func (ht *HttpTarget) sortResults() { +func (ht *HTTPTarget) sortResults() { sort.Slice(ht.Results, func(x, y int) bool { return ht.Results[x].Name > ht.Results[y].Name }) } -func (ht *HttpTarget) String() string { +func (ht *HTTPTarget) String() string { var sb strings.Builder fmt.Fprintf(&sb, `ID:%s Name:%s Hint:%s Path:%s `+ diff --git a/key_form_input.go b/key_form_input.go index e457466..afcbce7 100644 --- a/key_form_input.go +++ b/key_form_input.go @@ -15,8 +15,8 @@ import ( // and request parameters (either in query or in the parameter body). type KeyFormInput map[string]FormInput -// ToHttpHeader convert the KeyFormInputs to the standard http.Header. -func (kfi KeyFormInput) ToHttpHeader() (headers http.Header) { +// ToHTTPHeader convert the KeyFormInputs to the standard http.Header. +func (kfi KeyFormInput) ToHTTPHeader() (headers http.Header) { headers = http.Header{} if len(kfi) == 0 { return headers @@ -27,10 +27,10 @@ func (kfi KeyFormInput) ToHttpHeader() (headers http.Header) { return headers } -// ToJsonObject convert the KeyFormInput into JSON object. +// ToJSONObject convert the KeyFormInput into JSON object. // FormInput with Kind is FormInputKindBoolean will be converted to true if // the Value is either "true", "yes", or "1". -func (kfi KeyFormInput) ToJsonObject() (data map[string]interface{}) { +func (kfi KeyFormInput) ToJSONObject() (data map[string]interface{}) { var ( k string fi FormInput @@ -69,8 +69,8 @@ func (kfi KeyFormInput) ToMultipartFormData() (data map[string][]byte) { return data } -// ToUrlValues convert the KeyFormInput to the standard url.Values. -func (kfi KeyFormInput) ToUrlValues() (vals url.Values) { +// ToURLValues convert the KeyFormInput to the standard url.Values. +func (kfi KeyFormInput) ToURLValues() (vals url.Values) { vals = url.Values{} if len(kfi) == 0 { return vals diff --git a/memfs_www_embed.go b/memfs_www_embed.go index 253c2d5..5cffbe6 100644 --- a/memfs_www_embed.go +++ b/memfs_www_embed.go @@ -124,7 +124,7 @@ func generate__www_environment_js() *memfs.Node { Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x73\x74\x72\x69\x6E\x67\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x6E\x75\x6D\x62\x65\x72\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x2C\x20\x48\x41\x53\x48\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x20\x3D\x20\x74\x72\x75\x6E\x6B\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x33\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x75\x6E\x6B\x73\x2E\x73\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x28\x48\x41\x53\x48\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x2C\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x32\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x4C\x69\x73\x74\x65\x6E\x20\x61\x64\x64\x72\x65\x73\x73\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x68\x65\x20\x61\x64\x64\x72\x65\x73\x73\x20\x61\x6E\x64\x20\x70\x6F\x72\x74\x20\x77\x68\x65\x72\x65\x20\x54\x72\x75\x6E\x6B\x73\x20\x69\x73\x20\x72\x75\x6E\x6E\x69\x6E\x67\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x28\x6F\x70\x74\x73\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x4D\x61\x78\x2E\x20\x61\x74\x74\x61\x63\x6B\x20\x64\x75\x72\x61\x74\x69\x6F\x6E\x20\x28\x73\x65\x63\x6F\x6E\x64\x73\x29\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x4D\x61\x78\x69\x6D\x75\x6D\x20\x61\x74\x74\x61\x63\x6B\x20\x64\x75\x72\x61\x74\x69\x6F\x6E\x20\x66\x6F\x72\x20\x61\x6C\x6C\x20\x74\x61\x72\x67\x65\x74\x73\x2C\x20\x69\x6E\x20\x73\x65\x63\x6F\x6E\x64\x73\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x2F\x20\x31\x65\x39\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x69\x6E\x3A\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x3D\x20\x76\x20\x2A\x20\x31\x65\x39\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x6F\x70\x74\x73\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x4D\x61\x78\x2E\x20\x61\x74\x74\x61\x63\x6B\x20\x72\x61\x74\x65\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x4D\x61\x78\x69\x6D\x75\x6D\x20\x61\x74\x74\x61\x63\x6B\x20\x72\x61\x74\x65\x20\x66\x6F\x72\x20\x61\x6C\x6C\x20\x74\x61\x72\x67\x65\x74\x73\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x69\x6E\x3A\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x6F\x70\x74\x73\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x52\x65\x73\x75\x6C\x74\x73\x20\x64\x69\x72\x65\x63\x74\x6F\x72\x79\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x68\x65\x20\x64\x69\x72\x65\x63\x74\x6F\x72\x79\x20\x77\x68\x65\x72\x65\x20\x74\x68\x65\x20\x61\x74\x74\x61\x63\x6B\x20\x72\x65\x73\x75\x6C\x74\x20\x77\x69\x6C\x6C\x20\x62\x65\x20\x73\x61\x76\x65\x64\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x28\x6F\x70\x74\x73\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x52\x65\x73\x75\x6C\x74\x73\x20\x73\x75\x66\x66\x69\x78\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x4F\x70\x74\x69\x6F\x6E\x61\x6C\x20\x73\x75\x66\x66\x69\x78\x20\x66\x6F\x72\x20\x74\x68\x65\x20\x66\x69\x6C\x65\x20\x6E\x61\x6D\x65\x20\x6F\x66\x20\x61\x74\x74\x61\x63\x6B\x20\x72\x65\x73\x75\x6C\x74\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x28\x6F\x70\x74\x73\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x73\x65\x74\x28\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x2E\x73\x65\x74\x28\x6F\x70\x74\x73\x2E\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x2E\x73\x65\x74\x28\x6F\x70\x74\x73\x2E\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x2F\x20\x31\x65\x39\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x2E\x73\x65\x74\x28\x6F\x70\x74\x73\x2E\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x2E\x73\x65\x74\x28\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x2E\x73\x65\x74\x28\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"), } node.SetMode(420) - node.SetModTimeUnix(1699681934, 234371293) + node.SetModTimeUnix(1706186497, 739740706) node.SetName("environment.js") node.SetSize(4231) return node @@ -166,10 +166,10 @@ func generate__www_functions_js() *memfs.Node { Path: "/functions.js", ContentType: "text/javascript; charset=utf-8", GenFuncName: "generate__www_functions_js", - Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x6E\x75\x6D\x62\x65\x72\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x73\x74\x72\x69\x6E\x67\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x20\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x4B\x69\x6E\x64\x4E\x75\x6D\x62\x65\x72\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x44\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x3B\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x4D\x61\x74\x68\x2E\x6D\x61\x78\x28\x4D\x61\x74\x68\x2E\x6D\x61\x78\x28\x44\x2E\x62\x6F\x64\x79\x2E\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74\x2C\x20\x44\x2E\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74\x2E\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74\x29\x2C\x20\x4D\x61\x74\x68\x2E\x6D\x61\x78\x28\x44\x2E\x62\x6F\x64\x79\x2E\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74\x2C\x20\x44\x2E\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74\x2E\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74\x29\x2C\x20\x4D\x61\x74\x68\x2E\x6D\x61\x78\x28\x44\x2E\x62\x6F\x64\x79\x2E\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x2C\x20\x44\x2E\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74\x2E\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x29\x29\x3B\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x70\x61\x72\x65\x6E\x74\x2C\x20\x66\x69\x29\x20\x7B\x0A\x20\x20\x20\x20\x6C\x65\x74\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x6C\x65\x74\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x4F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x6C\x65\x74\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x3B\x0A\x20\x20\x20\x20\x6C\x65\x74\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x3B\x0A\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x66\x69\x2E\x6B\x69\x6E\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x4B\x69\x6E\x64\x4E\x75\x6D\x62\x65\x72\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x66\x69\x2E\x6C\x61\x62\x65\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x66\x69\x2E\x68\x69\x6E\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x2B\x66\x69\x2E\x76\x61\x6C\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x6E\x65\x77\x56\x61\x6C\x75\x65\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x22\x22\x20\x2B\x20\x6E\x65\x77\x56\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x69\x2E\x6D\x61\x78\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x2E\x6D\x61\x78\x20\x3D\x20\x66\x69\x2E\x6D\x61\x78\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x69\x2E\x6D\x69\x6E\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x2E\x6D\x69\x6E\x20\x3D\x20\x66\x69\x2E\x6D\x69\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6C\x74\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x66\x69\x2E\x6C\x61\x62\x65\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x66\x69\x2E\x68\x69\x6E\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x6E\x65\x77\x56\x61\x6C\x75\x65\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6E\x65\x77\x56\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x28\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x48\x74\x74\x70\x4D\x65\x74\x68\x6F\x64\x54\x6F\x53\x74\x72\x69\x6E\x67\x28\x6D\x29\x20\x7B\x0A\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x6D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x30\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x47\x45\x54\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x31\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x43\x4F\x4E\x4E\x45\x43\x54\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x32\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x44\x45\x4C\x45\x54\x45\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x33\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x48\x45\x41\x44\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x34\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x4F\x50\x54\x49\x4F\x4E\x53\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x35\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x50\x41\x54\x43\x48\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x36\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x50\x4F\x53\x54\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x37\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x50\x55\x54\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x38\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x54\x52\x41\x43\x45\x22\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x3F\x3F\x3F\x22\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x20\x67\x65\x74\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x20\x68\x65\x61\x64\x65\x72\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x62\x79\x20\x6B\x65\x79\x2E\x0A\x2F\x2F\x20\x49\x66\x20\x6E\x6F\x20\x68\x65\x61\x64\x65\x72\x20\x65\x78\x69\x73\x74\x20\x69\x6E\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x65\x20\x6F\x6E\x65\x20\x66\x72\x6F\x6D\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x20\x69\x74\x73\x65\x6C\x66\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x74\x74\x70\x2E\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x65\x61\x64\x65\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x65\x61\x64\x65\x72\x20\x3D\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x68\x65\x61\x64\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x68\x65\x61\x64\x65\x72\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x74\x74\x70\x2E\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x65\x61\x64\x65\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x20\x67\x65\x74\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x20\x70\x61\x72\x61\x6D\x65\x74\x65\x72\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x62\x79\x20\x6B\x65\x79\x2E\x0A\x2F\x2F\x20\x49\x66\x20\x6E\x6F\x20\x70\x61\x72\x61\x6D\x65\x74\x65\x72\x20\x65\x78\x69\x73\x74\x20\x69\x6E\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x65\x20\x6F\x6E\x65\x20\x66\x72\x6F\x6D\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x20\x69\x74\x73\x65\x6C\x66\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x74\x74\x70\x2E\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x70\x61\x72\x61\x6D\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x72\x61\x6D\x20\x3D\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x61\x6D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x70\x61\x72\x61\x6D\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x74\x74\x70\x2E\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x70\x61\x72\x61\x6D\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x2B\x76\x61\x6C\x20\x2F\x20\x31\x65\x39\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x2F\x20\x31\x65\x39\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x22\x22\x20\x2B\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x29\x3B\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x2B\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x22\x22\x20\x2B\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x29\x3B\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x54\x69\x6D\x65\x6F\x75\x74\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x2B\x76\x61\x6C\x20\x2F\x20\x31\x65\x39\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x54\x69\x6D\x65\x6F\x75\x74\x20\x2F\x20\x31\x65\x39\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x54\x69\x6D\x65\x6F\x75\x74\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x22\x22\x20\x2B\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x54\x69\x6D\x65\x6F\x75\x74\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x56\x61\x72\x20\x67\x65\x74\x20\x74\x61\x72\x67\x65\x74\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x6F\x72\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x65\x20\x6F\x72\x69\x67\x69\x6E\x61\x6C\x0A\x2F\x2F\x20\x76\x61\x6C\x75\x65\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x56\x61\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x76\x61\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x76\x61\x72\x20\x3D\x20\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x74\x76\x61\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x76\x61\x72\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x56\x61\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x76\x61\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x20\x67\x65\x74\x20\x74\x68\x65\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x62\x79\x20\x6B\x65\x79\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x77\x73\x2E\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x65\x61\x64\x65\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x65\x61\x64\x65\x72\x20\x3D\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x68\x65\x61\x64\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x68\x65\x61\x64\x65\x72\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x77\x73\x2E\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x65\x61\x64\x65\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x20\x67\x65\x74\x20\x74\x68\x65\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x20\x70\x61\x72\x61\x6D\x65\x74\x65\x72\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x6F\x72\x0A\x2F\x2F\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x65\x20\x6F\x6E\x65\x20\x66\x72\x6F\x6D\x20\x77\x73\x54\x61\x72\x67\x65\x74\x20\x69\x66\x20\x69\x74\x73\x20\x6E\x6F\x74\x20\x65\x78\x69\x73\x74\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x77\x73\x2E\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x70\x61\x72\x61\x6D\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x72\x61\x6D\x20\x3D\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x61\x6D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x70\x61\x72\x61\x6D\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x77\x73\x2E\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x70\x61\x72\x61\x6D\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x73\x61\x76\x65\x20\x74\x68\x65\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73\x20\x6F\x6E\x20\x74\x68\x65\x20\x54\x61\x72\x67\x65\x74\x2C\x20\x50\x61\x72\x61\x6D\x73\x20\x61\x6E\x64\x20\x48\x65\x61\x64\x65\x72\x73\x20\x6F\x6E\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x20\x6F\x72\x0A\x2F\x2F\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x20\x74\x6F\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x28\x74\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x28\x74\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x74\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x56\x61\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"), + Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x6E\x75\x6D\x62\x65\x72\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x73\x74\x72\x69\x6E\x67\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x20\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x4B\x69\x6E\x64\x4E\x75\x6D\x62\x65\x72\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x44\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x3B\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x4D\x61\x74\x68\x2E\x6D\x61\x78\x28\x4D\x61\x74\x68\x2E\x6D\x61\x78\x28\x44\x2E\x62\x6F\x64\x79\x2E\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74\x2C\x20\x44\x2E\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74\x2E\x73\x63\x72\x6F\x6C\x6C\x48\x65\x69\x67\x68\x74\x29\x2C\x20\x4D\x61\x74\x68\x2E\x6D\x61\x78\x28\x44\x2E\x62\x6F\x64\x79\x2E\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74\x2C\x20\x44\x2E\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74\x2E\x6F\x66\x66\x73\x65\x74\x48\x65\x69\x67\x68\x74\x29\x2C\x20\x4D\x61\x74\x68\x2E\x6D\x61\x78\x28\x44\x2E\x62\x6F\x64\x79\x2E\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x2C\x20\x44\x2E\x64\x6F\x63\x75\x6D\x65\x6E\x74\x45\x6C\x65\x6D\x65\x6E\x74\x2E\x63\x6C\x69\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x29\x29\x3B\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x70\x61\x72\x65\x6E\x74\x2C\x20\x66\x69\x29\x20\x7B\x0A\x20\x20\x20\x20\x6C\x65\x74\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x6C\x65\x74\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x4F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x6C\x65\x74\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x3B\x0A\x20\x20\x20\x20\x6C\x65\x74\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x3B\x0A\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x66\x69\x2E\x6B\x69\x6E\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x4B\x69\x6E\x64\x4E\x75\x6D\x62\x65\x72\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x66\x69\x2E\x6C\x61\x62\x65\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x66\x69\x2E\x68\x69\x6E\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x2B\x66\x69\x2E\x76\x61\x6C\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x6E\x65\x77\x56\x61\x6C\x75\x65\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x22\x22\x20\x2B\x20\x6E\x65\x77\x56\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x69\x2E\x6D\x61\x78\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x2E\x6D\x61\x78\x20\x3D\x20\x66\x69\x2E\x6D\x61\x78\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x66\x69\x2E\x6D\x69\x6E\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x2E\x6D\x69\x6E\x20\x3D\x20\x66\x69\x2E\x6D\x69\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x64\x65\x66\x61\x75\x6C\x74\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x66\x69\x2E\x6C\x61\x62\x65\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x66\x69\x2E\x68\x69\x6E\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x6E\x65\x77\x56\x61\x6C\x75\x65\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6E\x65\x77\x56\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x28\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x48\x54\x54\x50\x4D\x65\x74\x68\x6F\x64\x54\x6F\x53\x74\x72\x69\x6E\x67\x28\x6D\x29\x20\x7B\x0A\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x6D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x30\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x47\x45\x54\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x31\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x43\x4F\x4E\x4E\x45\x43\x54\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x32\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x44\x45\x4C\x45\x54\x45\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x33\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x48\x45\x41\x44\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x34\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x4F\x50\x54\x49\x4F\x4E\x53\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x35\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x50\x41\x54\x43\x48\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x36\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x50\x4F\x53\x54\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x37\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x50\x55\x54\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x38\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x54\x52\x41\x43\x45\x22\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x3F\x3F\x3F\x22\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x20\x67\x65\x74\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x20\x68\x65\x61\x64\x65\x72\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x62\x79\x20\x6B\x65\x79\x2E\x0A\x2F\x2F\x20\x49\x66\x20\x6E\x6F\x20\x68\x65\x61\x64\x65\x72\x20\x65\x78\x69\x73\x74\x20\x69\x6E\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x65\x20\x6F\x6E\x65\x20\x66\x72\x6F\x6D\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x20\x69\x74\x73\x65\x6C\x66\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x74\x74\x70\x2E\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x65\x61\x64\x65\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x65\x61\x64\x65\x72\x20\x3D\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x68\x65\x61\x64\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x68\x65\x61\x64\x65\x72\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x74\x74\x70\x2E\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x65\x61\x64\x65\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x20\x67\x65\x74\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x20\x70\x61\x72\x61\x6D\x65\x74\x65\x72\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x62\x79\x20\x6B\x65\x79\x2E\x0A\x2F\x2F\x20\x49\x66\x20\x6E\x6F\x20\x70\x61\x72\x61\x6D\x65\x74\x65\x72\x20\x65\x78\x69\x73\x74\x20\x69\x6E\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x65\x20\x6F\x6E\x65\x20\x66\x72\x6F\x6D\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x20\x69\x74\x73\x65\x6C\x66\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x74\x74\x70\x2E\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x70\x61\x72\x61\x6D\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x72\x61\x6D\x20\x3D\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x61\x6D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x70\x61\x72\x61\x6D\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x74\x74\x70\x2E\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x70\x61\x72\x61\x6D\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x2B\x76\x61\x6C\x20\x2F\x20\x31\x65\x39\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x2F\x20\x31\x65\x39\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x22\x22\x20\x2B\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x29\x3B\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x2B\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x22\x22\x20\x2B\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x29\x3B\x0A\x7D\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x54\x69\x6D\x65\x6F\x75\x74\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x2B\x76\x61\x6C\x20\x2F\x20\x31\x65\x39\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x54\x69\x6D\x65\x6F\x75\x74\x20\x2F\x20\x31\x65\x39\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x6F\x70\x74\x2E\x54\x69\x6D\x65\x6F\x75\x74\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x22\x22\x20\x2B\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2E\x54\x69\x6D\x65\x6F\x75\x74\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x56\x61\x72\x20\x67\x65\x74\x20\x74\x61\x72\x67\x65\x74\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x6F\x72\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x65\x20\x6F\x72\x69\x67\x69\x6E\x61\x6C\x0A\x2F\x2F\x20\x76\x61\x6C\x75\x65\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x56\x61\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x76\x61\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x76\x61\x72\x20\x3D\x20\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x74\x76\x61\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x76\x61\x72\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x56\x61\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x76\x61\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x20\x67\x65\x74\x20\x74\x68\x65\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x62\x79\x20\x6B\x65\x79\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x77\x73\x2E\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x65\x61\x64\x65\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x65\x61\x64\x65\x72\x20\x3D\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x68\x65\x61\x64\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x68\x65\x61\x64\x65\x72\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x77\x73\x2E\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x68\x65\x61\x64\x65\x72\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x20\x67\x65\x74\x20\x74\x68\x65\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x20\x70\x61\x72\x61\x6D\x65\x74\x65\x72\x20\x66\x72\x6F\x6D\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x20\x6F\x72\x0A\x2F\x2F\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x65\x20\x6F\x6E\x65\x20\x66\x72\x6F\x6D\x20\x77\x73\x54\x61\x72\x67\x65\x74\x20\x69\x66\x20\x69\x74\x73\x20\x6E\x6F\x74\x20\x65\x78\x69\x73\x74\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x77\x73\x2E\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x70\x61\x72\x61\x6D\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x67\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x76\x61\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x76\x61\x6C\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x72\x61\x6D\x20\x3D\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x5B\x6B\x65\x79\x5D\x3B\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x72\x61\x6D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x70\x61\x72\x61\x6D\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x22\x22\x3B\x0A\x7D\x0A\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x20\x3D\x20\x60\x24\x7B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x77\x73\x2E\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x7D\x2E\x70\x61\x72\x61\x6D\x2E\x24\x7B\x6B\x65\x79\x7D\x60\x3B\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x6C\x53\x74\x6F\x72\x61\x67\x65\x2E\x73\x65\x74\x49\x74\x65\x6D\x28\x73\x74\x6F\x72\x61\x67\x65\x4B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x7D\x0A\x2F\x2F\x0A\x2F\x2F\x20\x73\x61\x76\x65\x20\x74\x68\x65\x20\x76\x61\x72\x69\x61\x62\x6C\x65\x73\x20\x6F\x6E\x20\x74\x68\x65\x20\x54\x61\x72\x67\x65\x74\x2C\x20\x50\x61\x72\x61\x6D\x73\x20\x61\x6E\x64\x20\x48\x65\x61\x64\x65\x72\x73\x20\x6F\x6E\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x20\x6F\x72\x0A\x2F\x2F\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x20\x74\x6F\x20\x6C\x6F\x63\x61\x6C\x20\x73\x74\x6F\x72\x61\x67\x65\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x73\x61\x76\x65\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x28\x74\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x28\x74\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x74\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x54\x61\x72\x67\x65\x74\x56\x61\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x69\x66\x20\x28\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6B\x2C\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"), } node.SetMode(420) - node.SetModTimeUnix(1699681934, 234371293) + node.SetModTimeUnix(1706186497, 749740764) node.SetName("functions.js") node.SetSize(7954) return node @@ -181,10 +181,10 @@ func generate__www_http_target_js() *memfs.Node { Path: "/http_target.js", ContentType: "text/javascript; charset=utf-8", GenFuncName: "generate__www_http_target_js", - Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x73\x65\x6C\x65\x63\x74\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x73\x74\x72\x69\x6E\x67\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x2C\x20\x6C\x6F\x61\x64\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x2C\x20\x6C\x6F\x61\x64\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x73\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x61\x63\x74\x69\x6F\x6E\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x61\x74\x74\x61\x63\x6B\x5F\x72\x65\x73\x75\x6C\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x61\x74\x74\x61\x63\x6B\x5F\x72\x65\x73\x75\x6C\x74\x5F\x61\x63\x74\x69\x6F\x6E\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x69\x6E\x70\x75\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x48\x45\x41\x44\x45\x52\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x69\x6E\x70\x75\x74\x5F\x68\x65\x61\x64\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x50\x41\x52\x41\x4D\x53\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x69\x6E\x70\x75\x74\x5F\x70\x61\x72\x61\x6D\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x41\x54\x54\x41\x43\x4B\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x6F\x75\x74\x5F\x61\x74\x74\x61\x63\x6B\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x6F\x75\x74\x5F\x6D\x6F\x6E\x6F\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x52\x55\x4E\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x6F\x75\x74\x5F\x72\x75\x6E\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4F\x4E\x54\x45\x4E\x54\x5F\x54\x59\x50\x45\x5F\x4A\x53\x4F\x4E\x20\x3D\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x74\x61\x72\x67\x65\x74\x2C\x20\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x20\x3D\x20\x74\x72\x75\x6E\x6B\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x20\x3D\x20\x74\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x52\x75\x6E\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x41\x74\x74\x61\x63\x6B\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x69\x64\x20\x3D\x20\x6F\x70\x74\x73\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x33\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x6F\x70\x74\x73\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x63\x74\x69\x6F\x6E\x73\x28\x65\x6C\x54\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x41\x74\x74\x61\x63\x6B\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x63\x74\x69\x6F\x6E\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x52\x75\x6E\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x75\x6E\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x52\x75\x6E\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x52\x75\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x52\x75\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x41\x6C\x6C\x6F\x77\x41\x74\x74\x61\x63\x6B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x41\x74\x74\x61\x63\x6B\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x41\x74\x74\x61\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x41\x74\x74\x61\x63\x6B\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x41\x74\x74\x61\x63\x6B\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x48\x69\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x70\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x48\x69\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x48\x69\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x4D\x65\x74\x68\x6F\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x43\x6F\x6E\x74\x65\x6E\x74\x54\x79\x70\x65\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x4D\x65\x74\x68\x6F\x64\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6D\x20\x3D\x20\x22\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4D\x65\x74\x68\x6F\x64\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x65\x6C\x65\x63\x74\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x70\x74\x69\x6F\x6E\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x47\x45\x54\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x30\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x30\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x43\x4F\x4E\x4E\x45\x43\x54\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x31\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x31\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x44\x45\x4C\x45\x54\x45\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x32\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x32\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x45\x41\x44\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x33\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x33\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x50\x54\x49\x4F\x4E\x53\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x34\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x34\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x41\x54\x43\x48\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x35\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x35\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x4F\x53\x54\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x36\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x36\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x55\x54\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x37\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x37\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x52\x41\x43\x45\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x38\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x38\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x5F\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4D\x65\x74\x68\x6F\x64\x20\x3D\x20\x70\x61\x72\x73\x65\x49\x6E\x74\x28\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x4D\x65\x74\x68\x6F\x64\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x28\x73\x65\x6C\x65\x63\x74\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x74\x68\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x4D\x65\x74\x68\x6F\x64\x2E\x65\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x74\x68\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x70\x61\x74\x68\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x74\x68\x20\x3D\x20\x70\x61\x74\x68\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x50\x61\x74\x68\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x28\x70\x61\x74\x68\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x50\x61\x74\x68\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x43\x6F\x6E\x74\x65\x6E\x74\x54\x79\x70\x65\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x74\x20\x3D\x20\x22\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x65\x6C\x65\x63\x74\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x43\x6F\x6E\x74\x65\x6E\x74\x20\x74\x79\x70\x65\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x70\x74\x69\x6F\x6E\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x28\x6E\x6F\x6E\x65\x29\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x30\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x30\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x28\x71\x75\x65\x72\x79\x29\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x31\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x31\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x32\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x32\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x6D\x75\x6C\x74\x69\x70\x61\x72\x74\x2F\x66\x6F\x72\x6D\x2D\x64\x61\x74\x61\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x33\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x33\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x34\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x34\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x5F\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x20\x3D\x20\x70\x61\x72\x73\x65\x49\x6E\x74\x28\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x28\x73\x65\x6C\x65\x63\x74\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x4F\x62\x6A\x65\x63\x74\x2E\x6B\x65\x79\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3D\x3D\x3D\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x48\x45\x41\x44\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6C\x65\x67\x65\x6E\x64\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x67\x65\x6E\x64\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x48\x65\x61\x64\x65\x72\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x6C\x65\x67\x65\x6E\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x65\x79\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6C\x6F\x61\x64\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x2C\x20\x66\x69\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x72\x61\x6D\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x4F\x62\x6A\x65\x63\x74\x2E\x6B\x65\x79\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x72\x61\x6D\x73\x29\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3D\x3D\x3D\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x50\x41\x52\x41\x4D\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x65\x79\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x72\x61\x6D\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6C\x6F\x61\x64\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x2C\x20\x66\x69\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x52\x55\x4E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x75\x6E\x20\x6F\x75\x74\x70\x75\x74\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x62\x74\x6E\x43\x6C\x65\x61\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x43\x6C\x65\x61\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x43\x6C\x65\x61\x72\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x43\x6C\x65\x61\x72\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x43\x6C\x65\x61\x72\x4F\x75\x74\x70\x75\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x62\x74\x6E\x43\x6C\x65\x61\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x43\x6C\x65\x61\x72\x4F\x75\x74\x70\x75\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x41\x74\x74\x61\x63\x6B\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x41\x6C\x6C\x6F\x77\x41\x74\x74\x61\x63\x6B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x41\x54\x54\x41\x43\x4B\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x41\x74\x74\x61\x63\x6B\x20\x72\x65\x73\x75\x6C\x74\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x75\x6C\x74\x20\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x72\x65\x73\x75\x6C\x74\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x61\x63\x74\x69\x6F\x6E\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x6F\x6E\x73\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x53\x68\x6F\x77\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x28\x72\x65\x73\x75\x6C\x74\x2E\x4E\x61\x6D\x65\x2C\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x2C\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2C\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x44\x65\x6C\x65\x74\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x65\x74\x65\x28\x72\x65\x73\x75\x6C\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x6F\x6E\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x6F\x6E\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x61\x63\x74\x69\x6F\x6E\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x61\x74\x74\x61\x63\x6B\x48\x74\x74\x70\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x65\x74\x65\x28\x72\x65\x73\x75\x6C\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x61\x74\x74\x61\x63\x6B\x48\x74\x74\x70\x44\x65\x6C\x65\x74\x65\x28\x72\x65\x73\x75\x6C\x74\x2E\x4E\x61\x6D\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x72\x2C\x20\x78\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x2E\x4E\x61\x6D\x65\x20\x3D\x3D\x20\x72\x65\x73\x75\x6C\x74\x2E\x4E\x61\x6D\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x2E\x73\x70\x6C\x69\x63\x65\x28\x78\x2C\x20\x31\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x28\x72\x65\x73\x75\x6C\x74\x4E\x61\x6D\x65\x2C\x20\x62\x74\x6E\x2C\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2C\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x62\x74\x6E\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x3D\x3D\x20\x22\x48\x69\x64\x65\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x53\x68\x6F\x77\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x4A\x53\x4F\x4E\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x61\x74\x74\x61\x63\x6B\x48\x74\x74\x70\x47\x65\x74\x28\x72\x65\x73\x75\x6C\x74\x4E\x61\x6D\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x4A\x53\x4F\x4E\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x72\x65\x73\x4A\x53\x4F\x4E\x2E\x64\x61\x74\x61\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x54\x65\x78\x74\x52\x65\x70\x6F\x72\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x48\x69\x73\x74\x52\x65\x70\x6F\x72\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x48\x69\x64\x65\x22\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x43\x6C\x65\x61\x72\x4F\x75\x74\x70\x75\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x61\x77\x20\x72\x65\x71\x75\x65\x73\x74\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x61\x77\x20\x72\x65\x73\x70\x6F\x6E\x73\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x4A\x53\x4F\x4E\x20\x66\x6F\x72\x6D\x61\x74\x74\x65\x64\x20\x72\x65\x73\x70\x6F\x6E\x73\x65\x20\x62\x6F\x64\x79\x22\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x52\x75\x6E\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x72\x75\x6E\x48\x74\x74\x70\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x44\x75\x6D\x70\x52\x65\x71\x75\x65\x73\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x44\x75\x6D\x70\x52\x65\x73\x70\x6F\x6E\x73\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x62\x6F\x64\x79\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x54\x79\x70\x65\x20\x3D\x3D\x3D\x20\x43\x4F\x4E\x54\x45\x4E\x54\x5F\x54\x59\x50\x45\x5F\x4A\x53\x4F\x4E\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x4A\x53\x4F\x4E\x2E\x70\x61\x72\x73\x65\x28\x62\x6F\x64\x79\x29\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x32\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x62\x6F\x64\x79\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x41\x64\x64\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x28\x72\x65\x73\x75\x6C\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x2E\x70\x75\x73\x68\x28\x72\x65\x73\x75\x6C\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"), + Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x73\x65\x6C\x65\x63\x74\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x73\x74\x72\x69\x6E\x67\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x2C\x20\x6C\x6F\x61\x64\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x2C\x20\x6C\x6F\x61\x64\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x73\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x61\x63\x74\x69\x6F\x6E\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x61\x74\x74\x61\x63\x6B\x5F\x72\x65\x73\x75\x6C\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x61\x74\x74\x61\x63\x6B\x5F\x72\x65\x73\x75\x6C\x74\x5F\x61\x63\x74\x69\x6F\x6E\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x69\x6E\x70\x75\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x48\x45\x41\x44\x45\x52\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x69\x6E\x70\x75\x74\x5F\x68\x65\x61\x64\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x50\x41\x52\x41\x4D\x53\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x69\x6E\x70\x75\x74\x5F\x70\x61\x72\x61\x6D\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x41\x54\x54\x41\x43\x4B\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x6F\x75\x74\x5F\x61\x74\x74\x61\x63\x6B\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x6F\x75\x74\x5F\x6D\x6F\x6E\x6F\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x52\x55\x4E\x20\x3D\x20\x22\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x5F\x6F\x75\x74\x5F\x72\x75\x6E\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4F\x4E\x54\x45\x4E\x54\x5F\x54\x59\x50\x45\x5F\x4A\x53\x4F\x4E\x20\x3D\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x74\x61\x72\x67\x65\x74\x2C\x20\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x20\x3D\x20\x74\x72\x75\x6E\x6B\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x20\x3D\x20\x74\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x52\x75\x6E\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x41\x74\x74\x61\x63\x6B\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x69\x64\x20\x3D\x20\x6F\x70\x74\x73\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x33\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x6F\x70\x74\x73\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x63\x74\x69\x6F\x6E\x73\x28\x65\x6C\x54\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x41\x74\x74\x61\x63\x6B\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x63\x74\x69\x6F\x6E\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x52\x75\x6E\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x75\x6E\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x52\x75\x6E\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x52\x75\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x52\x75\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x41\x6C\x6C\x6F\x77\x41\x74\x74\x61\x63\x6B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x41\x74\x74\x61\x63\x6B\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x41\x74\x74\x61\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x41\x74\x74\x61\x63\x6B\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x42\x75\x74\x74\x6F\x6E\x41\x74\x74\x61\x63\x6B\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x48\x69\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x70\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x48\x69\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x48\x69\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x4D\x65\x74\x68\x6F\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x43\x6F\x6E\x74\x65\x6E\x74\x54\x79\x70\x65\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x52\x65\x71\x75\x65\x73\x74\x49\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x4D\x65\x74\x68\x6F\x64\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6D\x20\x3D\x20\x22\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4D\x65\x74\x68\x6F\x64\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x65\x6C\x65\x63\x74\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x70\x74\x69\x6F\x6E\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x47\x45\x54\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x30\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x30\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x43\x4F\x4E\x4E\x45\x43\x54\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x31\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x31\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x44\x45\x4C\x45\x54\x45\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x32\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x32\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x45\x41\x44\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x33\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x33\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x50\x54\x49\x4F\x4E\x53\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x34\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x34\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x41\x54\x43\x48\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x35\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x35\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x4F\x53\x54\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x36\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x36\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x55\x54\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x37\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x37\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x52\x41\x43\x45\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x38\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x6D\x20\x3D\x3D\x3D\x20\x22\x38\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x5F\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4D\x65\x74\x68\x6F\x64\x20\x3D\x20\x70\x61\x72\x73\x65\x49\x6E\x74\x28\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x4D\x65\x74\x68\x6F\x64\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x28\x73\x65\x6C\x65\x63\x74\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x74\x68\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x4D\x65\x74\x68\x6F\x64\x2E\x65\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x74\x68\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x70\x61\x74\x68\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x74\x68\x20\x3D\x20\x70\x61\x74\x68\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x50\x61\x74\x68\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x28\x70\x61\x74\x68\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x50\x61\x74\x68\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x43\x6F\x6E\x74\x65\x6E\x74\x54\x79\x70\x65\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x74\x20\x3D\x20\x22\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x65\x6C\x65\x63\x74\x4F\x70\x74\x73\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x43\x6F\x6E\x74\x65\x6E\x74\x20\x74\x79\x70\x65\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x70\x74\x69\x6F\x6E\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x28\x6E\x6F\x6E\x65\x29\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x30\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x30\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x28\x71\x75\x65\x72\x79\x29\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x31\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x31\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x78\x2D\x77\x77\x77\x2D\x66\x6F\x72\x6D\x2D\x75\x72\x6C\x65\x6E\x63\x6F\x64\x65\x64\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x32\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x32\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x6D\x75\x6C\x74\x69\x70\x61\x72\x74\x2F\x66\x6F\x72\x6D\x2D\x64\x61\x74\x61\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x33\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x33\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x22\x34\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x6C\x65\x63\x74\x65\x64\x3A\x20\x63\x74\x20\x3D\x3D\x3D\x20\x22\x34\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x5F\x2C\x20\x76\x61\x6C\x75\x65\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x20\x3D\x20\x70\x61\x72\x73\x65\x49\x6E\x74\x28\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x28\x73\x65\x6C\x65\x63\x74\x4F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x75\x69\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x4F\x62\x6A\x65\x63\x74\x2E\x6B\x65\x79\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3D\x3D\x3D\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x48\x45\x41\x44\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6C\x65\x67\x65\x6E\x64\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x67\x65\x6E\x64\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x48\x65\x61\x64\x65\x72\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x6C\x65\x67\x65\x6E\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x65\x79\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6C\x6F\x61\x64\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x2C\x20\x66\x69\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x72\x61\x6D\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x4F\x62\x6A\x65\x63\x74\x2E\x6B\x65\x79\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x72\x61\x6D\x73\x29\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3D\x3D\x3D\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x50\x41\x52\x41\x4D\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x65\x79\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x72\x61\x6D\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6C\x6F\x61\x64\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x2C\x20\x66\x69\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x52\x55\x4E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x75\x6E\x20\x6F\x75\x74\x70\x75\x74\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x62\x74\x6E\x43\x6C\x65\x61\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x43\x6C\x65\x61\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x43\x6C\x65\x61\x72\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x43\x6C\x65\x61\x72\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x43\x6C\x65\x61\x72\x4F\x75\x74\x70\x75\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x62\x74\x6E\x43\x6C\x65\x61\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x43\x6C\x65\x61\x72\x4F\x75\x74\x70\x75\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x41\x74\x74\x61\x63\x6B\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x41\x6C\x6C\x6F\x77\x41\x74\x74\x61\x63\x6B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x41\x54\x54\x41\x43\x4B\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x41\x74\x74\x61\x63\x6B\x20\x72\x65\x73\x75\x6C\x74\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x75\x6C\x74\x20\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x72\x65\x73\x75\x6C\x74\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x61\x63\x74\x69\x6F\x6E\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x6F\x6E\x73\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x48\x54\x54\x50\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x53\x68\x6F\x77\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x28\x72\x65\x73\x75\x6C\x74\x2E\x4E\x61\x6D\x65\x2C\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x2C\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2C\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x44\x65\x6C\x65\x74\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x65\x74\x65\x28\x72\x65\x73\x75\x6C\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x6F\x6E\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x61\x63\x74\x69\x6F\x6E\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x62\x74\x6E\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x61\x63\x74\x69\x6F\x6E\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x61\x74\x74\x61\x63\x6B\x48\x54\x54\x50\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x44\x65\x6C\x65\x74\x65\x28\x72\x65\x73\x75\x6C\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x61\x74\x74\x61\x63\x6B\x48\x54\x54\x50\x44\x65\x6C\x65\x74\x65\x28\x72\x65\x73\x75\x6C\x74\x2E\x4E\x61\x6D\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x72\x2C\x20\x78\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x2E\x4E\x61\x6D\x65\x20\x3D\x3D\x20\x72\x65\x73\x75\x6C\x74\x2E\x4E\x61\x6D\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x2E\x73\x70\x6C\x69\x63\x65\x28\x78\x2C\x20\x31\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x53\x68\x6F\x77\x28\x72\x65\x73\x75\x6C\x74\x4E\x61\x6D\x65\x2C\x20\x62\x74\x6E\x2C\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2C\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x62\x74\x6E\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x3D\x3D\x20\x22\x48\x69\x64\x65\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x53\x68\x6F\x77\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x4A\x53\x4F\x4E\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x61\x74\x74\x61\x63\x6B\x48\x54\x54\x50\x47\x65\x74\x28\x72\x65\x73\x75\x6C\x74\x4E\x61\x6D\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x4A\x53\x4F\x4E\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x72\x65\x73\x4A\x53\x4F\x4E\x2E\x64\x61\x74\x61\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x54\x65\x78\x74\x52\x65\x70\x6F\x72\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x54\x65\x78\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x48\x69\x73\x74\x52\x65\x70\x6F\x72\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x52\x65\x70\x6F\x72\x74\x48\x69\x73\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x48\x69\x64\x65\x22\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x43\x6C\x65\x61\x72\x4F\x75\x74\x70\x75\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x61\x77\x20\x72\x65\x71\x75\x65\x73\x74\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x61\x77\x20\x72\x65\x73\x70\x6F\x6E\x73\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x4A\x53\x4F\x4E\x20\x66\x6F\x72\x6D\x61\x74\x74\x65\x64\x20\x72\x65\x73\x70\x6F\x6E\x73\x65\x20\x62\x6F\x64\x79\x22\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x52\x75\x6E\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x72\x75\x6E\x48\x54\x54\x50\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x71\x75\x65\x73\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x44\x75\x6D\x70\x52\x65\x71\x75\x65\x73\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x44\x75\x6D\x70\x52\x65\x73\x70\x6F\x6E\x73\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x62\x6F\x64\x79\x20\x3D\x20\x61\x74\x6F\x62\x28\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x54\x79\x70\x65\x20\x3D\x3D\x3D\x20\x43\x4F\x4E\x54\x45\x4E\x54\x5F\x54\x59\x50\x45\x5F\x4A\x53\x4F\x4E\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x4A\x53\x4F\x4E\x2E\x70\x61\x72\x73\x65\x28\x62\x6F\x64\x79\x29\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x32\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x52\x65\x73\x70\x6F\x6E\x73\x65\x42\x6F\x64\x79\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x62\x6F\x64\x79\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x41\x64\x64\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x28\x72\x65\x73\x75\x6C\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x52\x65\x73\x75\x6C\x74\x73\x2E\x70\x75\x73\x68\x28\x72\x65\x73\x75\x6C\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x4F\x75\x74\x41\x74\x74\x61\x63\x6B\x52\x65\x73\x75\x6C\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"), } node.SetMode(420) - node.SetModTimeUnix(1699681934, 234371293) + node.SetModTimeUnix(1706186497, 769740880) node.SetName("http_target.js") node.SetSize(13210) return node @@ -214,7 +214,7 @@ func generate__www_index_js() *memfs.Node { Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x54\x72\x75\x6E\x6B\x73\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x74\x72\x75\x6E\x6B\x73\x2E\x6A\x73\x22\x3B\x0A\x61\x73\x79\x6E\x63\x20\x66\x75\x6E\x63\x74\x69\x6F\x6E\x20\x6D\x61\x69\x6E\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x72\x75\x6E\x6B\x73\x20\x3D\x20\x6E\x65\x77\x20\x54\x72\x75\x6E\x6B\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x74\x72\x75\x6E\x6B\x73\x2E\x69\x6E\x69\x74\x28\x29\x3B\x0A\x7D\x0A\x6D\x61\x69\x6E\x28\x29\x3B\x0A"), } node.SetMode(420) - node.SetModTimeUnix(1699681934, 237704643) + node.SetModTimeUnix(1706186497, 789740996) node.SetName("index.js") node.SetSize(236) return node @@ -229,7 +229,7 @@ func generate__www_interface_js() *memfs.Node { Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x69\x6E\x70\x75\x74\x5F\x6C\x61\x62\x65\x6C\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x69\x6E\x70\x75\x74\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x4C\x49\x4E\x4B\x20\x3D\x20\x22\x6E\x61\x76\x5F\x6C\x69\x6E\x6B\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x20\x3D\x20\x22\x6E\x61\x76\x5F\x74\x61\x72\x67\x65\x74\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x48\x41\x53\x48\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x20\x3D\x20\x22\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x48\x41\x53\x48\x5F\x4C\x49\x4E\x4B\x53\x20\x3D\x20\x22\x6C\x69\x6E\x6B\x73\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x4B\x69\x6E\x64\x4E\x75\x6D\x62\x65\x72\x20\x3D\x20\x22\x6E\x75\x6D\x62\x65\x72\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x4B\x69\x6E\x64\x53\x74\x72\x69\x6E\x67\x20\x3D\x20\x22\x73\x74\x72\x69\x6E\x67\x22\x3B\x0A"), } node.SetMode(420) - node.SetModTimeUnix(1699681934, 234371293) + node.SetModTimeUnix(1706186497, 736407354) node.SetName("interface.js") node.SetSize(464) return node @@ -241,10 +241,10 @@ func generate__www_nav_links_js() *memfs.Node { Path: "/nav_links.js", ContentType: "text/javascript; charset=utf-8", GenFuncName: "generate__www_nav_links_js", - Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x48\x41\x53\x48\x5F\x4C\x49\x4E\x4B\x53\x2C\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x4C\x49\x4E\x4B\x2C\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x73\x2E\x6A\x73\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x6E\x61\x76\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x20\x3D\x20\x74\x72\x75\x6E\x6B\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x73\x20\x3D\x20\x6E\x61\x76\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x53\x72\x63\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x69\x66\x72\x61\x6D\x65\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x64\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x33\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x68\x64\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x4C\x69\x6E\x6B\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x68\x64\x72\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x75\x6E\x6B\x73\x2E\x73\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x28\x48\x41\x53\x48\x5F\x4C\x49\x4E\x4B\x53\x2C\x20\x6E\x75\x6C\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x68\x64\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x73\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x6E\x61\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x4C\x49\x4E\x4B\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x74\x65\x78\x74\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x6E\x61\x76\x2E\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x65\x6E\x28\x6E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x2E\x77\x69\x64\x74\x68\x20\x3D\x20\x22\x31\x30\x30\x25\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x2E\x68\x65\x69\x67\x68\x74\x20\x3D\x20\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x28\x29\x20\x2D\x20\x36\x30\x20\x2B\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x53\x72\x63\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x6F\x70\x65\x6E\x28\x6E\x61\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6E\x61\x76\x2E\x4F\x70\x65\x6E\x49\x6E\x49\x46\x72\x61\x6D\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x53\x72\x63\x2E\x74\x65\x78\x74\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x22\x53\x6F\x75\x72\x63\x65\x3A\x20\x22\x20\x2B\x20\x6E\x61\x76\x2E\x48\x72\x65\x66\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x2E\x73\x72\x63\x20\x3D\x20\x6E\x61\x76\x2E\x48\x72\x65\x66\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x22\x6E\x61\x76\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x42\x61\x73\x65\x55\x72\x6C\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x70\x74\x73\x3A\x20\x7B\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x56\x61\x72\x73\x3A\x20\x7B\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x61\x76\x2C\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6F\x70\x65\x6E\x28\x6E\x61\x76\x2E\x48\x72\x65\x66\x2C\x20\x22\x5F\x62\x6C\x61\x6E\x6B\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"), + Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x48\x41\x53\x48\x5F\x4C\x49\x4E\x4B\x53\x2C\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x4C\x49\x4E\x4B\x2C\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x73\x2E\x6A\x73\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x6E\x61\x76\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x20\x3D\x20\x74\x72\x75\x6E\x6B\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x73\x20\x3D\x20\x6E\x61\x76\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x53\x72\x63\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x69\x66\x72\x61\x6D\x65\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x64\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x33\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x68\x64\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x4C\x69\x6E\x6B\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x68\x64\x72\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x75\x6E\x6B\x73\x2E\x73\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x28\x48\x41\x53\x48\x5F\x4C\x49\x4E\x4B\x53\x2C\x20\x6E\x75\x6C\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x68\x64\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x73\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x6E\x61\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x4C\x49\x4E\x4B\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x74\x65\x78\x74\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x6E\x61\x76\x2E\x54\x65\x78\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x65\x6E\x28\x6E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x2E\x77\x69\x64\x74\x68\x20\x3D\x20\x22\x31\x30\x30\x25\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x2E\x68\x65\x69\x67\x68\x74\x20\x3D\x20\x67\x65\x74\x44\x6F\x63\x75\x6D\x65\x6E\x74\x48\x65\x69\x67\x68\x74\x28\x29\x20\x2D\x20\x36\x30\x20\x2B\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x53\x72\x63\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x6F\x70\x65\x6E\x28\x6E\x61\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6E\x61\x76\x2E\x4F\x70\x65\x6E\x49\x6E\x49\x46\x72\x61\x6D\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x53\x72\x63\x2E\x74\x65\x78\x74\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x22\x53\x6F\x75\x72\x63\x65\x3A\x20\x22\x20\x2B\x20\x6E\x61\x76\x2E\x48\x72\x65\x66\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x49\x66\x72\x61\x6D\x65\x2E\x73\x72\x63\x20\x3D\x20\x6E\x61\x76\x2E\x48\x72\x65\x66\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x22\x6E\x61\x76\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x42\x61\x73\x65\x55\x52\x4C\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x70\x74\x73\x3A\x20\x7B\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x56\x61\x72\x73\x3A\x20\x7B\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x61\x76\x2C\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6F\x70\x65\x6E\x28\x6E\x61\x76\x2E\x48\x72\x65\x66\x2C\x20\x22\x5F\x62\x6C\x61\x6E\x6B\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"), } node.SetMode(420) - node.SetModTimeUnix(1699681934, 234371293) + node.SetModTimeUnix(1706186497, 753074117) node.SetName("nav_links.js") node.SetSize(2028) return node @@ -256,10 +256,10 @@ func generate__www_target_js() *memfs.Node { Path: "/target.js", ContentType: "text/javascript; charset=utf-8", GenFuncName: "generate__www_target_js", - Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x6E\x75\x6D\x62\x65\x72\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x73\x74\x72\x69\x6E\x67\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x2C\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x2C\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x2C\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x56\x61\x72\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x73\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x2E\x6A\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x5F\x48\x54\x54\x50\x20\x3D\x20\x22\x6E\x61\x76\x5F\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x5F\x57\x53\x20\x3D\x20\x22\x6E\x61\x76\x5F\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x54\x61\x72\x67\x65\x74\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x20\x3D\x20\x74\x72\x75\x6E\x6B\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x73\x20\x3D\x20\x7B\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x73\x20\x3D\x20\x7B\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x74\x72\x75\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x74\x72\x75\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x74\x72\x75\x6E\x6B\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x4D\x65\x6E\x75\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x33\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x4D\x65\x6E\x75\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x4D\x65\x6E\x75\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x61\x72\x67\x65\x74\x4D\x65\x6E\x75\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x68\x74\x20\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x74\x74\x70\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x74\x74\x70\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x68\x74\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x74\x74\x70\x2E\x69\x64\x20\x3D\x20\x60\x2F\x68\x74\x74\x70\x2F\x24\x7B\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x44\x7D\x2F\x24\x7B\x68\x74\x2E\x49\x44\x7D\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x74\x74\x70\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x5F\x48\x54\x54\x50\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x74\x74\x70\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x68\x74\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x74\x74\x70\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x77\x73\x74\x20\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x77\x73\x74\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x2E\x69\x64\x20\x3D\x20\x60\x2F\x77\x73\x2F\x24\x7B\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x44\x7D\x2F\x24\x7B\x77\x73\x74\x2E\x49\x44\x7D\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x5F\x57\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x77\x73\x74\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x74\x72\x75\x6E\x6B\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x42\x61\x73\x65\x55\x52\x4C\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x41\x74\x74\x61\x63\x6B\x4F\x70\x74\x69\x6F\x6E\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x56\x61\x72\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x28\x74\x72\x75\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x28\x74\x72\x75\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x42\x61\x73\x65\x55\x52\x4C\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x64\x72\x54\x61\x72\x67\x65\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x32\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x68\x64\x72\x54\x61\x72\x67\x65\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x68\x64\x72\x54\x61\x72\x67\x65\x74\x2E\x69\x64\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x48\x69\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x70\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x48\x69\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x20\x7C\x7C\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x42\x61\x73\x65\x55\x72\x6C\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x42\x61\x73\x65\x20\x55\x52\x4C\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x68\x65\x20\x62\x61\x73\x65\x20\x55\x52\x4C\x20\x77\x68\x65\x72\x65\x20\x74\x68\x65\x20\x48\x54\x54\x50\x20\x72\x65\x71\x75\x65\x73\x74\x20\x77\x69\x6C\x6C\x20\x62\x65\x20\x73\x65\x6E\x64\x20\x6F\x72\x20\x74\x68\x65\x20\x74\x61\x72\x67\x65\x74\x20\x6F\x66\x20\x61\x74\x74\x61\x63\x6B\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x42\x61\x73\x65\x55\x72\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x42\x61\x73\x65\x55\x72\x6C\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x49\x6E\x70\x75\x74\x42\x61\x73\x65\x55\x72\x6C\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x28\x6F\x70\x74\x73\x42\x61\x73\x65\x55\x72\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x68\x64\x72\x54\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x48\x69\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x49\x6E\x70\x75\x74\x42\x61\x73\x65\x55\x72\x6C\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x41\x74\x74\x61\x63\x6B\x4F\x70\x74\x69\x6F\x6E\x73\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6C\x65\x67\x65\x6E\x64\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x67\x65\x6E\x64\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x41\x74\x74\x61\x63\x6B\x20\x6F\x70\x74\x69\x6F\x6E\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x44\x75\x72\x61\x74\x69\x6F\x6E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x68\x65\x20\x64\x75\x72\x61\x74\x69\x6F\x6E\x20\x6F\x66\x20\x61\x74\x74\x61\x63\x6B\x2C\x20\x69\x6E\x20\x73\x65\x63\x6F\x6E\x64\x73\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x69\x6E\x3A\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x70\x74\x73\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x3D\x20\x76\x20\x2A\x20\x31\x65\x39\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x49\x6E\x70\x75\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x6F\x70\x74\x73\x44\x75\x72\x61\x74\x69\x6F\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x52\x61\x74\x65\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x52\x61\x74\x65\x20\x70\x65\x72\x20\x73\x65\x63\x6F\x6E\x64\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x68\x65\x20\x6E\x75\x6D\x62\x65\x72\x20\x6F\x66\x20\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x64\x20\x70\x65\x72\x20\x73\x65\x63\x6F\x6E\x64\x20\x77\x68\x65\x6E\x20\x61\x74\x74\x61\x63\x6B\x69\x6E\x67\x20\x74\x61\x72\x67\x65\x74\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x69\x6E\x3A\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x70\x74\x73\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x49\x6E\x70\x75\x74\x52\x61\x74\x65\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x6F\x70\x74\x73\x52\x61\x74\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x54\x69\x6D\x65\x6F\x75\x74\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x54\x69\x6D\x65\x6F\x75\x74\x20\x28\x73\x65\x63\x6F\x6E\x64\x73\x29\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x69\x6D\x65\x6F\x75\x74\x20\x66\x6F\x72\x20\x65\x61\x63\x68\x20\x72\x65\x71\x75\x65\x73\x74\x2C\x20\x69\x6E\x20\x73\x65\x63\x6F\x6E\x64\x73\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x69\x6E\x3A\x20\x35\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x70\x74\x73\x2E\x54\x69\x6D\x65\x6F\x75\x74\x20\x3D\x20\x76\x20\x2A\x20\x31\x65\x39\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x49\x6E\x70\x75\x74\x54\x69\x6D\x65\x6F\x75\x74\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x6F\x70\x74\x73\x54\x69\x6D\x65\x6F\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x6C\x65\x67\x65\x6E\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x49\x6E\x70\x75\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x49\x6E\x70\x75\x74\x52\x61\x74\x65\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x49\x6E\x70\x75\x74\x54\x69\x6D\x65\x6F\x75\x74\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x56\x61\x72\x73\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x56\x61\x72\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6C\x65\x67\x65\x6E\x64\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x67\x65\x6E\x64\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x56\x61\x72\x69\x61\x62\x6C\x65\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x6C\x65\x67\x65\x6E\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x65\x79\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x56\x61\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x56\x61\x72\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x2C\x20\x66\x69\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x28\x74\x72\x75\x6E\x6B\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x20\x3D\x20\x6E\x65\x77\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x73\x5B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x5D\x20\x3D\x20\x63\x6F\x6D\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x28\x74\x72\x75\x6E\x6B\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x57\x53\x54\x61\x72\x67\x65\x74\x20\x3D\x20\x6E\x65\x77\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x73\x5B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x5D\x20\x3D\x20\x63\x6F\x6D\x57\x53\x54\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x57\x53\x54\x61\x72\x67\x65\x74\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"), + Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x6E\x75\x6D\x62\x65\x72\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x69\x6E\x70\x75\x74\x2F\x73\x74\x72\x69\x6E\x67\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x2C\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x2C\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x2C\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x56\x61\x72\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x73\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x2E\x6A\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x5F\x48\x54\x54\x50\x20\x3D\x20\x22\x6E\x61\x76\x5F\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x5F\x57\x53\x20\x3D\x20\x22\x6E\x61\x76\x5F\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x54\x61\x72\x67\x65\x74\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x20\x3D\x20\x74\x72\x75\x6E\x6B\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x73\x20\x3D\x20\x7B\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x73\x20\x3D\x20\x7B\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x74\x72\x75\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x74\x72\x75\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x74\x72\x75\x6E\x6B\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x4D\x65\x6E\x75\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x33\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x4D\x65\x6E\x75\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x4D\x65\x6E\x75\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x61\x72\x67\x65\x74\x4D\x65\x6E\x75\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x68\x74\x20\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x54\x54\x50\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x54\x54\x50\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x68\x74\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x54\x54\x50\x2E\x69\x64\x20\x3D\x20\x60\x2F\x68\x74\x74\x70\x2F\x24\x7B\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x44\x7D\x2F\x24\x7B\x68\x74\x2E\x49\x44\x7D\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x54\x54\x50\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x5F\x48\x54\x54\x50\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x54\x54\x50\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x68\x74\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x61\x72\x67\x65\x74\x48\x54\x54\x50\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x77\x73\x74\x20\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x77\x73\x74\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x2E\x69\x64\x20\x3D\x20\x60\x2F\x77\x73\x2F\x24\x7B\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x44\x7D\x2F\x24\x7B\x77\x73\x74\x2E\x49\x44\x7D\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x5F\x54\x41\x52\x47\x45\x54\x5F\x57\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x72\x75\x6E\x6B\x73\x2E\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x77\x73\x74\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x61\x72\x67\x65\x74\x57\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x74\x72\x75\x6E\x6B\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x42\x61\x73\x65\x55\x52\x4C\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x41\x74\x74\x61\x63\x6B\x4F\x70\x74\x69\x6F\x6E\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x56\x61\x72\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x28\x74\x72\x75\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x28\x74\x72\x75\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x42\x61\x73\x65\x55\x52\x4C\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x64\x72\x54\x61\x72\x67\x65\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x32\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x68\x64\x72\x54\x61\x72\x67\x65\x74\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x68\x64\x72\x54\x61\x72\x67\x65\x74\x2E\x69\x64\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x48\x69\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x70\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x48\x69\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x20\x7C\x7C\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x42\x61\x73\x65\x55\x52\x4C\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x42\x61\x73\x65\x20\x55\x52\x4C\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x68\x65\x20\x62\x61\x73\x65\x20\x55\x52\x4C\x20\x77\x68\x65\x72\x65\x20\x74\x68\x65\x20\x48\x54\x54\x50\x20\x72\x65\x71\x75\x65\x73\x74\x20\x77\x69\x6C\x6C\x20\x62\x65\x20\x73\x65\x6E\x64\x20\x6F\x72\x20\x74\x68\x65\x20\x74\x61\x72\x67\x65\x74\x20\x6F\x66\x20\x61\x74\x74\x61\x63\x6B\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x42\x61\x73\x65\x55\x52\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x42\x61\x73\x65\x55\x52\x4C\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x49\x6E\x70\x75\x74\x42\x61\x73\x65\x55\x52\x4C\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x28\x6F\x70\x74\x73\x42\x61\x73\x65\x55\x52\x4C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x68\x64\x72\x54\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x48\x69\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x49\x6E\x70\x75\x74\x42\x61\x73\x65\x55\x52\x4C\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x41\x74\x74\x61\x63\x6B\x4F\x70\x74\x69\x6F\x6E\x73\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6C\x65\x67\x65\x6E\x64\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x67\x65\x6E\x64\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x41\x74\x74\x61\x63\x6B\x20\x6F\x70\x74\x69\x6F\x6E\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x44\x75\x72\x61\x74\x69\x6F\x6E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x68\x65\x20\x64\x75\x72\x61\x74\x69\x6F\x6E\x20\x6F\x66\x20\x61\x74\x74\x61\x63\x6B\x2C\x20\x69\x6E\x20\x73\x65\x63\x6F\x6E\x64\x73\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x69\x6E\x3A\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x70\x74\x73\x2E\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x3D\x20\x76\x20\x2A\x20\x31\x65\x39\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x49\x6E\x70\x75\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x6F\x70\x74\x73\x44\x75\x72\x61\x74\x69\x6F\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x52\x61\x74\x65\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x52\x61\x74\x65\x20\x70\x65\x72\x20\x73\x65\x63\x6F\x6E\x64\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x68\x65\x20\x6E\x75\x6D\x62\x65\x72\x20\x6F\x66\x20\x72\x65\x71\x75\x65\x73\x74\x20\x73\x65\x6E\x64\x20\x70\x65\x72\x20\x73\x65\x63\x6F\x6E\x64\x20\x77\x68\x65\x6E\x20\x61\x74\x74\x61\x63\x6B\x69\x6E\x67\x20\x74\x61\x72\x67\x65\x74\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x69\x6E\x3A\x20\x31\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x70\x74\x73\x2E\x52\x61\x74\x65\x50\x65\x72\x53\x65\x63\x6F\x6E\x64\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x49\x6E\x70\x75\x74\x52\x61\x74\x65\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x6F\x70\x74\x73\x52\x61\x74\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6F\x70\x74\x73\x54\x69\x6D\x65\x6F\x75\x74\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x61\x62\x65\x6C\x3A\x20\x22\x54\x69\x6D\x65\x6F\x75\x74\x20\x28\x73\x65\x63\x6F\x6E\x64\x73\x29\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x3A\x20\x22\x54\x69\x6D\x65\x6F\x75\x74\x20\x66\x6F\x72\x20\x65\x61\x63\x68\x20\x72\x65\x71\x75\x65\x73\x74\x2C\x20\x69\x6E\x20\x73\x65\x63\x6F\x6E\x64\x73\x2E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x76\x61\x6C\x75\x65\x3A\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x4F\x70\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x69\x6E\x3A\x20\x35\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x3A\x20\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x5F\x4C\x41\x42\x45\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x3A\x20\x74\x72\x75\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x3A\x20\x28\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x4F\x70\x74\x73\x2E\x54\x69\x6D\x65\x6F\x75\x74\x20\x3D\x20\x76\x20\x2A\x20\x31\x65\x39\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x49\x6E\x70\x75\x74\x54\x69\x6D\x65\x6F\x75\x74\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x28\x6F\x70\x74\x73\x54\x69\x6D\x65\x6F\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x6C\x65\x67\x65\x6E\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x49\x6E\x70\x75\x74\x44\x75\x72\x61\x74\x69\x6F\x6E\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x49\x6E\x70\x75\x74\x52\x61\x74\x65\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x49\x6E\x70\x75\x74\x54\x69\x6D\x65\x6F\x75\x74\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x56\x61\x72\x73\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x56\x61\x72\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6C\x65\x67\x65\x6E\x64\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x67\x65\x6E\x64\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x56\x61\x72\x69\x61\x62\x6C\x65\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x6C\x65\x67\x65\x6E\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x65\x79\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x56\x61\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6C\x6F\x61\x64\x54\x61\x72\x67\x65\x74\x56\x61\x72\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x2C\x20\x66\x69\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x28\x74\x72\x75\x6E\x6B\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x20\x3D\x20\x6E\x65\x77\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x68\x74\x74\x70\x5F\x74\x61\x72\x67\x65\x74\x73\x5B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x5D\x20\x3D\x20\x63\x6F\x6D\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x28\x74\x72\x75\x6E\x6B\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x57\x53\x54\x61\x72\x67\x65\x74\x20\x3D\x20\x6E\x65\x77\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x73\x5B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x5D\x20\x3D\x20\x63\x6F\x6D\x57\x53\x54\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x57\x53\x54\x61\x72\x67\x65\x74\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"), } node.SetMode(420) - node.SetModTimeUnix(1699681934, 237704643) + node.SetModTimeUnix(1706186497, 779740938) node.SetName("target.js") node.SetSize(6937) return node @@ -271,10 +271,10 @@ func generate__www_trunks_js() *memfs.Node { Path: "/trunks.js", ContentType: "text/javascript; charset=utf-8", GenFuncName: "generate__www_trunks_js", - Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x73\x61\x76\x65\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x73\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x48\x41\x53\x48\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x6E\x61\x76\x5F\x6C\x69\x6E\x6B\x73\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x54\x61\x72\x67\x65\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x74\x61\x72\x67\x65\x74\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x76\x61\x72\x73\x2E\x6A\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x48\x54\x54\x50\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x61\x74\x74\x61\x63\x6B\x2F\x68\x74\x74\x70\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x61\x74\x74\x61\x63\x6B\x2F\x72\x65\x73\x75\x6C\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x4E\x41\x56\x4C\x49\x4E\x4B\x53\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x6E\x61\x76\x6C\x69\x6E\x6B\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x53\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x74\x61\x72\x67\x65\x74\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x5F\x52\x55\x4E\x5F\x48\x54\x54\x50\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x74\x61\x72\x67\x65\x74\x2F\x72\x75\x6E\x2F\x68\x74\x74\x70\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x5F\x52\x55\x4E\x5F\x57\x45\x42\x53\x4F\x43\x4B\x45\x54\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x74\x61\x72\x67\x65\x74\x2F\x72\x75\x6E\x2F\x77\x65\x62\x73\x6F\x63\x6B\x65\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x55\x4E\x4E\x49\x4E\x47\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x61\x74\x74\x61\x63\x6B\x5F\x72\x75\x6E\x6E\x69\x6E\x67\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x46\x4F\x4F\x54\x45\x52\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x66\x6F\x6F\x74\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4D\x41\x49\x4E\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x6D\x61\x69\x6E\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x6E\x61\x76\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x54\x72\x75\x6E\x6B\x73\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6E\x76\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x61\x74\x69\x6F\x6E\x3A\x20\x30\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x3A\x20\x30\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x3A\x20\x6E\x75\x6C\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x73\x20\x3D\x20\x7B\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x3D\x20\x7B\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x45\x6E\x76\x20\x3D\x20\x6E\x65\x77\x20\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x28\x74\x68\x69\x73\x2C\x20\x74\x68\x69\x73\x2E\x65\x6E\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x62\x6F\x64\x79\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x4E\x61\x76\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x57\x53\x43\x6F\x6E\x6E\x53\x74\x61\x74\x75\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x73\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6C\x65\x67\x65\x6E\x64\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x67\x65\x6E\x64\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x41\x74\x74\x61\x63\x6B\x20\x72\x75\x6E\x6E\x69\x6E\x67\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x55\x4E\x4E\x49\x4E\x47\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x4E\x61\x76\x46\x6F\x6F\x74\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x46\x6F\x6F\x74\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x46\x4F\x4F\x54\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x46\x6F\x6F\x74\x65\x72\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x60\x0A\x09\x09\x09\x3C\x64\x69\x76\x3E\x0A\x09\x09\x09\x09\x3C\x64\x69\x76\x3E\x50\x6F\x77\x65\x72\x65\x64\x20\x62\x79\x20\x3C\x61\x20\x68\x72\x65\x66\x3D\x22\x68\x74\x74\x70\x73\x3A\x2F\x2F\x73\x72\x2E\x68\x74\x2F\x7E\x73\x68\x75\x6C\x68\x61\x6E\x2F\x74\x72\x75\x6E\x6B\x73\x22\x20\x74\x61\x72\x67\x65\x74\x3D\x22\x5F\x62\x6C\x61\x6E\x6B\x22\x3E\x54\x72\x75\x6E\x6B\x73\x3C\x2F\x61\x3E\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x09\x09\x3C\x64\x69\x76\x3E\x3C\x61\x20\x68\x72\x65\x66\x3D\x22\x2F\x64\x6F\x63\x2F\x22\x20\x74\x61\x72\x67\x65\x74\x3D\x22\x5F\x62\x6C\x61\x6E\x6B\x22\x3E\x44\x6F\x63\x75\x6D\x65\x6E\x74\x61\x74\x69\x6F\x6E\x3C\x2F\x61\x3E\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x57\x53\x43\x6F\x6E\x6E\x53\x74\x61\x74\x75\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x73\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x6C\x65\x67\x65\x6E\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x73\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x66\x73\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x45\x6E\x76\x2E\x65\x6C\x4E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x72\x22\x29\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x4E\x61\x76\x46\x6F\x6F\x74\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x4E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4D\x41\x49\x4E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x43\x61\x6E\x63\x65\x6C\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x69\x6E\x69\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x61\x70\x69\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x47\x65\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x69\x6E\x69\x74\x54\x61\x72\x67\x65\x74\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x69\x6E\x69\x74\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x69\x6E\x64\x6F\x77\x4F\x6E\x48\x61\x73\x68\x43\x68\x61\x6E\x67\x65\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6F\x6E\x68\x61\x73\x68\x63\x68\x61\x6E\x67\x65\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x69\x6E\x64\x6F\x77\x4F\x6E\x48\x61\x73\x68\x43\x68\x61\x6E\x67\x65\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x61\x70\x69\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x47\x65\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6E\x76\x20\x3D\x20\x72\x65\x73\x2E\x64\x61\x74\x61\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x28\x74\x68\x69\x73\x2E\x65\x6E\x76\x2E\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x45\x6E\x76\x2E\x73\x65\x74\x28\x74\x68\x69\x73\x2E\x65\x6E\x76\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x69\x6E\x69\x74\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x4E\x41\x56\x4C\x49\x4E\x4B\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x3D\x20\x6E\x65\x77\x20\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x28\x74\x68\x69\x73\x2C\x20\x72\x65\x73\x2E\x64\x61\x74\x61\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x2E\x65\x6C\x4E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x6E\x61\x76\x20\x6F\x66\x20\x72\x65\x73\x2E\x64\x61\x74\x61\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x4C\x69\x6E\x6B\x73\x5B\x6E\x61\x76\x2E\x49\x44\x5D\x20\x3D\x20\x6E\x61\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x69\x6E\x69\x74\x54\x61\x72\x67\x65\x74\x73\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x61\x72\x67\x65\x74\x73\x20\x3D\x20\x72\x65\x73\x2E\x64\x61\x74\x61\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x6F\x66\x20\x74\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x54\x61\x72\x67\x65\x74\x20\x3D\x20\x6E\x65\x77\x20\x54\x61\x72\x67\x65\x74\x28\x74\x68\x69\x73\x2C\x20\x74\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x73\x5B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x5D\x20\x3D\x20\x63\x6F\x6D\x54\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x54\x61\x72\x67\x65\x74\x2E\x65\x6C\x4E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x48\x54\x54\x50\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x44\x45\x4C\x45\x54\x45\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x72\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x69\x6E\x66\x6F\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x28\x6E\x75\x6C\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6A\x73\x6F\x6E\x52\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x4F\x6E\x48\x61\x73\x68\x43\x68\x61\x6E\x67\x65\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x50\x61\x72\x73\x65\x20\x74\x68\x65\x20\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x20\x68\x61\x73\x68\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x74\x68\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x2E\x68\x61\x73\x68\x2E\x73\x75\x62\x73\x74\x72\x69\x6E\x67\x28\x31\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x74\x68\x73\x20\x3D\x20\x70\x61\x74\x68\x2E\x73\x70\x6C\x69\x74\x28\x22\x2F\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3C\x20\x32\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x31\x5D\x20\x3D\x3D\x3D\x20\x48\x41\x53\x48\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x45\x6E\x76\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x6C\x6F\x67\x28\x22\x70\x61\x74\x68\x73\x3A\x20\x22\x2C\x20\x70\x61\x74\x68\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x74\x20\x65\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x70\x61\x74\x68\x73\x5B\x31\x5D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x73\x5B\x70\x61\x74\x68\x73\x5B\x31\x5D\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x70\x61\x74\x68\x73\x2E\x6C\x65\x6E\x67\x74\x68\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x32\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x33\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x61\x72\x67\x65\x74\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64\x28\x70\x61\x74\x68\x73\x5B\x31\x5D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x73\x63\x72\x6F\x6C\x6C\x49\x6E\x74\x6F\x56\x69\x65\x77\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x34\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x32\x5D\x20\x3D\x3D\x3D\x20\x22\x68\x74\x74\x70\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x61\x72\x67\x65\x74\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x32\x5D\x20\x3D\x3D\x3D\x20\x22\x77\x73\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x61\x72\x67\x65\x74\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x32\x5D\x20\x3D\x3D\x3D\x20\x22\x6C\x69\x6E\x6B\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x33\x5D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6E\x61\x76\x20\x3D\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x4C\x69\x6E\x6B\x73\x5B\x70\x61\x74\x68\x73\x5B\x33\x5D\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6E\x61\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x2E\x6F\x70\x65\x6E\x28\x6E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64\x28\x70\x61\x74\x68\x73\x5B\x33\x5D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x73\x63\x72\x6F\x6C\x6C\x49\x6E\x74\x6F\x56\x69\x65\x77\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x73\x65\x74\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x28\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x2D\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x54\x61\x72\x67\x65\x74\x20\x7C\x7C\x20\x21\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x2D\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x60\x0A\x09\x09\x09\x24\x7B\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x20\x3C\x62\x72\x2F\x3E\x0A\x09\x09\x09\x2F\x20\x24\x7B\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x20\x3C\x62\x72\x2F\x3E\x0A\x09\x09\x09\x3C\x62\x72\x2F\x3E\x0A\x09\x09\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x69\x6E\x66\x6F\x28\x60\x41\x74\x74\x61\x63\x6B\x69\x6E\x67\x20\x22\x24\x7B\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x2F\x24\x7B\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x22\x20\x2E\x2E\x2E\x60\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x61\x74\x74\x61\x63\x6B\x48\x74\x74\x70\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6E\x75\x6C\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x61\x74\x74\x61\x63\x6B\x52\x65\x71\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x61\x72\x67\x65\x74\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x70\x74\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x56\x61\x72\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x42\x61\x73\x65\x55\x72\x6C\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x42\x61\x73\x65\x55\x72\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4D\x65\x74\x68\x6F\x64\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4D\x65\x74\x68\x6F\x64\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x61\x74\x68\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x74\x68\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x65\x61\x64\x65\x72\x73\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x61\x72\x61\x6D\x73\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x73\x75\x6C\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x6C\x6C\x6F\x77\x41\x74\x74\x61\x63\x6B\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x41\x6C\x6C\x6F\x77\x41\x74\x74\x61\x63\x6B\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x3A\x20\x6E\x75\x6C\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x48\x54\x54\x50\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x50\x4F\x53\x54\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x61\x64\x65\x72\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65\x22\x3A\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6F\x64\x79\x3A\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x61\x74\x74\x61\x63\x6B\x52\x65\x71\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x28\x61\x74\x74\x61\x63\x6B\x52\x65\x71\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6A\x73\x6F\x6E\x52\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x61\x74\x74\x61\x63\x6B\x48\x74\x74\x70\x44\x65\x6C\x65\x74\x65\x28\x6E\x61\x6D\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6D\x73\x67\x20\x3D\x20\x60\x41\x72\x65\x20\x79\x6F\x75\x20\x73\x75\x72\x65\x20\x79\x6F\x75\x20\x77\x61\x6E\x74\x20\x74\x6F\x20\x64\x65\x6C\x65\x74\x65\x20\x74\x68\x65\x20\x72\x65\x73\x75\x6C\x74\x3A\x20\x24\x7B\x6E\x61\x6D\x65\x7D\x3F\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x79\x65\x73\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x63\x6F\x6E\x66\x69\x72\x6D\x28\x6D\x73\x67\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x79\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x75\x72\x6C\x20\x3D\x20\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x20\x2B\x20\x22\x3F\x6E\x61\x6D\x65\x3D\x22\x20\x2B\x20\x6E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x75\x72\x6C\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x44\x45\x4C\x45\x54\x45\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x72\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6A\x73\x6F\x6E\x52\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x61\x74\x74\x61\x63\x6B\x48\x74\x74\x70\x47\x65\x74\x28\x6E\x61\x6D\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x75\x72\x6C\x20\x3D\x20\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x20\x2B\x20\x22\x3F\x6E\x61\x6D\x65\x3D\x22\x20\x2B\x20\x6E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x75\x72\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x72\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x72\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6E\x61\x76\x4C\x69\x6E\x6B\x2C\x20\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x74\x20\x68\x61\x73\x68\x20\x3D\x20\x22\x23\x2F\x22\x20\x2B\x20\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x68\x20\x2B\x3D\x20\x22\x2F\x68\x74\x74\x70\x2F\x22\x20\x2B\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x69\x66\x20\x28\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x68\x20\x2B\x3D\x20\x22\x2F\x77\x73\x2F\x22\x20\x2B\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x69\x66\x20\x28\x6E\x61\x76\x4C\x69\x6E\x6B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x68\x20\x2B\x3D\x20\x22\x2F\x6C\x69\x6E\x6B\x2F\x22\x20\x2B\x20\x6E\x61\x76\x4C\x69\x6E\x6B\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x2E\x68\x61\x73\x68\x20\x3D\x20\x68\x61\x73\x68\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x72\x75\x6E\x48\x74\x74\x70\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6E\x75\x6C\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x71\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x61\x72\x67\x65\x74\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x70\x74\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x56\x61\x72\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x42\x61\x73\x65\x55\x72\x6C\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x3A\x20\x6E\x75\x6C\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x5F\x52\x55\x4E\x5F\x48\x54\x54\x50\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x50\x4F\x53\x54\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x61\x64\x65\x72\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65\x22\x3A\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6F\x64\x79\x3A\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x72\x65\x71\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x64\x61\x74\x61\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x53\x74\x61\x74\x75\x73\x43\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x60\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x3A\x20\x24\x7B\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x53\x74\x61\x74\x75\x73\x7D\x60\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x69\x6E\x66\x6F\x28\x60\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x3A\x20\x24\x7B\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x53\x74\x61\x74\x75\x73\x7D\x60\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x72\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x72\x75\x6E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x71\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x61\x72\x67\x65\x74\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x70\x74\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x56\x61\x72\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x42\x61\x73\x65\x55\x72\x6C\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x74\x74\x70\x54\x61\x72\x67\x65\x74\x3A\x20\x6E\x75\x6C\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x3A\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x5F\x52\x55\x4E\x5F\x57\x45\x42\x53\x4F\x43\x4B\x45\x54\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x50\x4F\x53\x54\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x61\x64\x65\x72\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65\x22\x3A\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6F\x64\x79\x3A\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x72\x65\x71\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x72\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x69\x6E\x66\x6F\x28\x60\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x3A\x20\x73\x75\x63\x63\x65\x73\x73\x2E\x60\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6A\x73\x6F\x6E\x52\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x73\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x28\x70\x61\x74\x68\x2C\x20\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x2E\x68\x61\x73\x68\x20\x3D\x20\x22\x23\x2F\x22\x20\x2B\x20\x70\x61\x74\x68\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"), + Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x73\x61\x76\x65\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x73\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x48\x41\x53\x48\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x6E\x61\x76\x5F\x6C\x69\x6E\x6B\x73\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x54\x61\x72\x67\x65\x74\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x74\x61\x72\x67\x65\x74\x2E\x6A\x73\x22\x3B\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x76\x61\x72\x73\x2E\x6A\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x48\x54\x54\x50\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x61\x74\x74\x61\x63\x6B\x2F\x68\x74\x74\x70\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x61\x74\x74\x61\x63\x6B\x2F\x72\x65\x73\x75\x6C\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x65\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x4E\x41\x56\x4C\x49\x4E\x4B\x53\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x6E\x61\x76\x6C\x69\x6E\x6B\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x53\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x74\x61\x72\x67\x65\x74\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x5F\x52\x55\x4E\x5F\x48\x54\x54\x50\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x74\x61\x72\x67\x65\x74\x2F\x72\x75\x6E\x2F\x68\x74\x74\x70\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x5F\x52\x55\x4E\x5F\x57\x45\x42\x53\x4F\x43\x4B\x45\x54\x20\x3D\x20\x22\x2F\x5F\x74\x72\x75\x6E\x6B\x73\x2F\x61\x70\x69\x2F\x74\x61\x72\x67\x65\x74\x2F\x72\x75\x6E\x2F\x77\x65\x62\x73\x6F\x63\x6B\x65\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x55\x4E\x4E\x49\x4E\x47\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x61\x74\x74\x61\x63\x6B\x5F\x72\x75\x6E\x6E\x69\x6E\x67\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x46\x4F\x4F\x54\x45\x52\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x66\x6F\x6F\x74\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4D\x41\x49\x4E\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x6D\x61\x69\x6E\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x20\x3D\x20\x22\x74\x72\x75\x6E\x6B\x73\x5F\x6E\x61\x76\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x54\x72\x75\x6E\x6B\x73\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6E\x76\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4C\x69\x73\x74\x65\x6E\x41\x64\x64\x72\x65\x73\x73\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x44\x75\x72\x61\x74\x69\x6F\x6E\x3A\x20\x30\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4D\x61\x78\x41\x74\x74\x61\x63\x6B\x52\x61\x74\x65\x3A\x20\x30\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x73\x75\x6C\x74\x73\x44\x69\x72\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x73\x75\x6C\x74\x73\x53\x75\x66\x66\x69\x78\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x3A\x20\x6E\x75\x6C\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x73\x20\x3D\x20\x7B\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x3D\x20\x7B\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x45\x6E\x76\x20\x3D\x20\x6E\x65\x77\x20\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x28\x74\x68\x69\x73\x2C\x20\x74\x68\x69\x73\x2E\x65\x6E\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x62\x6F\x64\x79\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4E\x61\x76\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x4E\x61\x76\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4E\x41\x56\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x57\x53\x43\x6F\x6E\x6E\x53\x74\x61\x74\x75\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x73\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6C\x65\x67\x65\x6E\x64\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x67\x65\x6E\x64\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x41\x74\x74\x61\x63\x6B\x20\x72\x75\x6E\x6E\x69\x6E\x67\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x55\x4E\x4E\x49\x4E\x47\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x4E\x61\x76\x46\x6F\x6F\x74\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x46\x6F\x6F\x74\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x46\x4F\x4F\x54\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x46\x6F\x6F\x74\x65\x72\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x60\x0A\x09\x09\x09\x3C\x64\x69\x76\x3E\x0A\x09\x09\x09\x09\x3C\x64\x69\x76\x3E\x50\x6F\x77\x65\x72\x65\x64\x20\x62\x79\x20\x3C\x61\x20\x68\x72\x65\x66\x3D\x22\x68\x74\x74\x70\x73\x3A\x2F\x2F\x73\x72\x2E\x68\x74\x2F\x7E\x73\x68\x75\x6C\x68\x61\x6E\x2F\x74\x72\x75\x6E\x6B\x73\x22\x20\x74\x61\x72\x67\x65\x74\x3D\x22\x5F\x62\x6C\x61\x6E\x6B\x22\x3E\x54\x72\x75\x6E\x6B\x73\x3C\x2F\x61\x3E\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x09\x09\x3C\x64\x69\x76\x3E\x3C\x61\x20\x68\x72\x65\x66\x3D\x22\x2F\x64\x6F\x63\x2F\x22\x20\x74\x61\x72\x67\x65\x74\x3D\x22\x5F\x62\x6C\x61\x6E\x6B\x22\x3E\x44\x6F\x63\x75\x6D\x65\x6E\x74\x61\x74\x69\x6F\x6E\x3C\x2F\x61\x3E\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x09\x09\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x57\x53\x43\x6F\x6E\x6E\x53\x74\x61\x74\x75\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x73\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x6C\x65\x67\x65\x6E\x64\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x73\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x66\x73\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x45\x6E\x76\x2E\x65\x6C\x4E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x72\x22\x29\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4E\x61\x76\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x4E\x61\x76\x46\x6F\x6F\x74\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x4E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x43\x6F\x6E\x74\x65\x6E\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x4D\x41\x49\x4E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x43\x61\x6E\x63\x65\x6C\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x69\x6E\x69\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x61\x70\x69\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x47\x65\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x69\x6E\x69\x74\x54\x61\x72\x67\x65\x74\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x69\x6E\x69\x74\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x69\x6E\x64\x6F\x77\x4F\x6E\x48\x61\x73\x68\x43\x68\x61\x6E\x67\x65\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6F\x6E\x68\x61\x73\x68\x63\x68\x61\x6E\x67\x65\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x77\x69\x6E\x64\x6F\x77\x4F\x6E\x48\x61\x73\x68\x43\x68\x61\x6E\x67\x65\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x61\x70\x69\x45\x6E\x76\x69\x72\x6F\x6E\x6D\x65\x6E\x74\x47\x65\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6E\x76\x20\x3D\x20\x72\x65\x73\x2E\x64\x61\x74\x61\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x28\x74\x68\x69\x73\x2E\x65\x6E\x76\x2E\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x45\x6E\x76\x2E\x73\x65\x74\x28\x74\x68\x69\x73\x2E\x65\x6E\x76\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x69\x6E\x69\x74\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x4E\x41\x56\x4C\x49\x4E\x4B\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x20\x3D\x20\x6E\x65\x77\x20\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x28\x74\x68\x69\x73\x2C\x20\x72\x65\x73\x2E\x64\x61\x74\x61\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x2E\x65\x6C\x4E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x6E\x61\x76\x20\x6F\x66\x20\x72\x65\x73\x2E\x64\x61\x74\x61\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x4C\x69\x6E\x6B\x73\x5B\x6E\x61\x76\x2E\x49\x44\x5D\x20\x3D\x20\x6E\x61\x76\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x69\x6E\x69\x74\x54\x61\x72\x67\x65\x74\x73\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x61\x72\x67\x65\x74\x73\x20\x3D\x20\x72\x65\x73\x2E\x64\x61\x74\x61\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x6F\x66\x20\x74\x61\x72\x67\x65\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x63\x6F\x6D\x54\x61\x72\x67\x65\x74\x20\x3D\x20\x6E\x65\x77\x20\x54\x61\x72\x67\x65\x74\x28\x74\x68\x69\x73\x2C\x20\x74\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x73\x5B\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x5D\x20\x3D\x20\x63\x6F\x6D\x54\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x4E\x61\x76\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x63\x6F\x6D\x54\x61\x72\x67\x65\x74\x2E\x65\x6C\x4E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x48\x54\x54\x50\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x44\x45\x4C\x45\x54\x45\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x72\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x69\x6E\x66\x6F\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x28\x6E\x75\x6C\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6A\x73\x6F\x6E\x52\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x4F\x6E\x48\x61\x73\x68\x43\x68\x61\x6E\x67\x65\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x2F\x2F\x20\x50\x61\x72\x73\x65\x20\x74\x68\x65\x20\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x20\x68\x61\x73\x68\x2E\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x74\x68\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x2E\x68\x61\x73\x68\x2E\x73\x75\x62\x73\x74\x72\x69\x6E\x67\x28\x31\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x70\x61\x74\x68\x73\x20\x3D\x20\x70\x61\x74\x68\x2E\x73\x70\x6C\x69\x74\x28\x22\x2F\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3C\x20\x32\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x31\x5D\x20\x3D\x3D\x3D\x20\x48\x41\x53\x48\x5F\x45\x4E\x56\x49\x52\x4F\x4E\x4D\x45\x4E\x54\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x63\x6F\x6D\x45\x6E\x76\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x6F\x6C\x65\x2E\x6C\x6F\x67\x28\x22\x70\x61\x74\x68\x73\x3A\x20\x22\x2C\x20\x70\x61\x74\x68\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x74\x20\x65\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x70\x61\x74\x68\x73\x5B\x31\x5D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x73\x5B\x70\x61\x74\x68\x73\x5B\x31\x5D\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x77\x69\x74\x63\x68\x20\x28\x70\x61\x74\x68\x73\x2E\x6C\x65\x6E\x67\x74\x68\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x32\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x33\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x61\x72\x67\x65\x74\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64\x28\x70\x61\x74\x68\x73\x5B\x31\x5D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x73\x63\x72\x6F\x6C\x6C\x49\x6E\x74\x6F\x56\x69\x65\x77\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x61\x73\x65\x20\x34\x3A\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x32\x5D\x20\x3D\x3D\x3D\x20\x22\x68\x74\x74\x70\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x61\x72\x67\x65\x74\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x32\x5D\x20\x3D\x3D\x3D\x20\x22\x77\x73\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x61\x72\x67\x65\x74\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x32\x5D\x20\x3D\x3D\x3D\x20\x22\x6C\x69\x6E\x6B\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x70\x61\x74\x68\x73\x5B\x33\x5D\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6E\x61\x76\x20\x3D\x20\x74\x68\x69\x73\x2E\x6E\x61\x76\x4C\x69\x6E\x6B\x73\x5B\x70\x61\x74\x68\x73\x5B\x33\x5D\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6E\x61\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x63\x6F\x6D\x4E\x61\x76\x4C\x69\x6E\x6B\x73\x2E\x6F\x70\x65\x6E\x28\x6E\x61\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x67\x65\x74\x45\x6C\x65\x6D\x65\x6E\x74\x42\x79\x49\x64\x28\x70\x61\x74\x68\x73\x5B\x33\x5D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x2E\x73\x63\x72\x6F\x6C\x6C\x49\x6E\x74\x6F\x56\x69\x65\x77\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x72\x65\x61\x6B\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x73\x65\x74\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x28\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x2D\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x54\x61\x72\x67\x65\x74\x20\x7C\x7C\x20\x21\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x2D\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x60\x0A\x09\x09\x09\x24\x7B\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x20\x3C\x62\x72\x2F\x3E\x0A\x09\x09\x09\x2F\x20\x24\x7B\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x20\x3C\x62\x72\x2F\x3E\x0A\x09\x09\x09\x3C\x62\x72\x2F\x3E\x0A\x09\x09\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x41\x74\x74\x61\x63\x6B\x43\x61\x6E\x63\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x69\x6E\x66\x6F\x28\x60\x41\x74\x74\x61\x63\x6B\x69\x6E\x67\x20\x22\x24\x7B\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x2F\x24\x7B\x72\x75\x6E\x52\x65\x71\x75\x65\x73\x74\x2E\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x22\x20\x2E\x2E\x2E\x60\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x61\x74\x74\x61\x63\x6B\x48\x54\x54\x50\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6E\x75\x6C\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x61\x74\x74\x61\x63\x6B\x52\x65\x71\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x61\x72\x67\x65\x74\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x70\x74\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x56\x61\x72\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x42\x61\x73\x65\x55\x52\x4C\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x42\x61\x73\x65\x55\x52\x4C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4D\x65\x74\x68\x6F\x64\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4D\x65\x74\x68\x6F\x64\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x61\x74\x68\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x74\x68\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x52\x65\x71\x75\x65\x73\x74\x54\x79\x70\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x65\x61\x64\x65\x72\x73\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x48\x65\x61\x64\x65\x72\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x50\x61\x72\x61\x6D\x73\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x50\x61\x72\x61\x6D\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x73\x75\x6C\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x41\x6C\x6C\x6F\x77\x41\x74\x74\x61\x63\x6B\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x41\x6C\x6C\x6F\x77\x41\x74\x74\x61\x63\x6B\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x73\x43\x75\x73\x74\x6F\x6D\x69\x7A\x61\x62\x6C\x65\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x3A\x20\x6E\x75\x6C\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x48\x54\x54\x50\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x50\x4F\x53\x54\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x61\x64\x65\x72\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65\x22\x3A\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6F\x64\x79\x3A\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x61\x74\x74\x61\x63\x6B\x52\x65\x71\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x73\x65\x74\x41\x74\x74\x61\x63\x6B\x52\x75\x6E\x6E\x69\x6E\x67\x28\x61\x74\x74\x61\x63\x6B\x52\x65\x71\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6A\x73\x6F\x6E\x52\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x61\x74\x74\x61\x63\x6B\x48\x54\x54\x50\x44\x65\x6C\x65\x74\x65\x28\x6E\x61\x6D\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6D\x73\x67\x20\x3D\x20\x60\x41\x72\x65\x20\x79\x6F\x75\x20\x73\x75\x72\x65\x20\x79\x6F\x75\x20\x77\x61\x6E\x74\x20\x74\x6F\x20\x64\x65\x6C\x65\x74\x65\x20\x74\x68\x65\x20\x72\x65\x73\x75\x6C\x74\x3A\x20\x24\x7B\x6E\x61\x6D\x65\x7D\x3F\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x79\x65\x73\x20\x3D\x20\x77\x69\x6E\x64\x6F\x77\x2E\x63\x6F\x6E\x66\x69\x72\x6D\x28\x6D\x73\x67\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x79\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x75\x72\x6C\x20\x3D\x20\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x20\x2B\x20\x22\x3F\x6E\x61\x6D\x65\x3D\x22\x20\x2B\x20\x6E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x75\x72\x6C\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x44\x45\x4C\x45\x54\x45\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x72\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6A\x73\x6F\x6E\x52\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x61\x74\x74\x61\x63\x6B\x48\x54\x54\x50\x47\x65\x74\x28\x6E\x61\x6D\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x75\x72\x6C\x20\x3D\x20\x41\x50\x49\x5F\x41\x54\x54\x41\x43\x4B\x5F\x52\x45\x53\x55\x4C\x54\x20\x2B\x20\x22\x3F\x6E\x61\x6D\x65\x3D\x22\x20\x2B\x20\x6E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x75\x72\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x72\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x72\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x72\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x63\x6F\x6E\x74\x65\x6E\x74\x52\x65\x6E\x64\x65\x72\x65\x72\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x20\x6E\x61\x76\x4C\x69\x6E\x6B\x2C\x20\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x74\x20\x68\x61\x73\x68\x20\x3D\x20\x22\x23\x2F\x22\x20\x2B\x20\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x68\x20\x2B\x3D\x20\x22\x2F\x68\x74\x74\x70\x2F\x22\x20\x2B\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x69\x66\x20\x28\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x68\x20\x2B\x3D\x20\x22\x2F\x77\x73\x2F\x22\x20\x2B\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x69\x66\x20\x28\x6E\x61\x76\x4C\x69\x6E\x6B\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x61\x73\x68\x20\x2B\x3D\x20\x22\x2F\x6C\x69\x6E\x6B\x2F\x22\x20\x2B\x20\x6E\x61\x76\x4C\x69\x6E\x6B\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x2E\x68\x61\x73\x68\x20\x3D\x20\x68\x61\x73\x68\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x72\x75\x6E\x48\x54\x54\x50\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x20\x6E\x75\x6C\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x71\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x61\x72\x67\x65\x74\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x70\x74\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x56\x61\x72\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x42\x61\x73\x65\x55\x52\x4C\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x3A\x20\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x3A\x20\x6E\x75\x6C\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x74\x74\x70\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x5F\x52\x55\x4E\x5F\x48\x54\x54\x50\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x50\x4F\x53\x54\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x61\x64\x65\x72\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65\x22\x3A\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6F\x64\x79\x3A\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x72\x65\x71\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x68\x74\x74\x70\x52\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x64\x61\x74\x61\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x53\x74\x61\x74\x75\x73\x43\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x60\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x3A\x20\x24\x7B\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x53\x74\x61\x74\x75\x73\x7D\x60\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x69\x6E\x66\x6F\x28\x60\x24\x7B\x68\x74\x74\x70\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x3A\x20\x24\x7B\x72\x65\x73\x2E\x52\x65\x73\x70\x6F\x6E\x73\x65\x53\x74\x61\x74\x75\x73\x7D\x60\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x72\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x72\x75\x6E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x61\x76\x65\x28\x74\x61\x72\x67\x65\x74\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x77\x73\x54\x61\x72\x67\x65\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x71\x20\x3D\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x54\x61\x72\x67\x65\x74\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x49\x44\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x49\x44\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x70\x74\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x4F\x70\x74\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x56\x61\x72\x73\x3A\x20\x74\x61\x72\x67\x65\x74\x2E\x56\x61\x72\x73\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4E\x61\x6D\x65\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x42\x61\x73\x65\x55\x52\x4C\x3A\x20\x22\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x73\x3A\x20\x5B\x5D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x48\x54\x54\x50\x54\x61\x72\x67\x65\x74\x3A\x20\x6E\x75\x6C\x6C\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x3A\x20\x77\x73\x54\x61\x72\x67\x65\x74\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x66\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x65\x74\x63\x68\x28\x41\x50\x49\x5F\x54\x41\x52\x47\x45\x54\x5F\x52\x55\x4E\x5F\x57\x45\x42\x53\x4F\x43\x4B\x45\x54\x2C\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x6D\x65\x74\x68\x6F\x64\x3A\x20\x22\x50\x4F\x53\x54\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x65\x61\x64\x65\x72\x73\x3A\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x22\x43\x6F\x6E\x74\x65\x6E\x74\x2D\x54\x79\x70\x65\x22\x3A\x20\x22\x61\x70\x70\x6C\x69\x63\x61\x74\x69\x6F\x6E\x2F\x6A\x73\x6F\x6E\x22\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x62\x6F\x64\x79\x3A\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x72\x65\x71\x29\x2C\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6A\x73\x6F\x6E\x52\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x66\x72\x65\x73\x2E\x6A\x73\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x63\x6F\x64\x65\x20\x21\x3D\x20\x32\x30\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x65\x72\x72\x6F\x72\x28\x6A\x73\x6F\x6E\x52\x65\x73\x2E\x6D\x65\x73\x73\x61\x67\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6E\x75\x6C\x6C\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x2E\x69\x6E\x66\x6F\x28\x60\x24\x7B\x77\x73\x54\x61\x72\x67\x65\x74\x2E\x4E\x61\x6D\x65\x7D\x3A\x20\x73\x75\x63\x63\x65\x73\x73\x2E\x60\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x6A\x73\x6F\x6E\x52\x65\x73\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x73\x65\x74\x43\x6F\x6E\x74\x65\x6E\x74\x28\x70\x61\x74\x68\x2C\x20\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x43\x6F\x6E\x74\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x69\x6E\x64\x6F\x77\x2E\x6C\x6F\x63\x61\x74\x69\x6F\x6E\x2E\x68\x61\x73\x68\x20\x3D\x20\x22\x23\x2F\x22\x20\x2B\x20\x70\x61\x74\x68\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"), } node.SetMode(420) - node.SetModTimeUnix(1699681934, 237704643) + node.SetModTimeUnix(1706186497, 789740996) node.SetName("trunks.js") node.SetSize(12672) return node @@ -289,7 +289,7 @@ func generate__www_vars_js() *memfs.Node { Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x57\x75\x69\x4E\x6F\x74\x69\x66\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x77\x75\x69\x2F\x6E\x6F\x74\x69\x66\x2F\x6E\x6F\x74\x69\x66\x2E\x6A\x73\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x77\x75\x69\x4E\x6F\x74\x69\x66\x20\x3D\x20\x6E\x65\x77\x20\x57\x75\x69\x4E\x6F\x74\x69\x66\x28\x29\x3B\x0A"), } node.SetMode(420) - node.SetModTimeUnix(1699681934, 237704643) + node.SetModTimeUnix(1706186497, 779740938) node.SetName("vars.js") node.SetSize(195) return node @@ -304,7 +304,7 @@ func generate__www_ws_target_js() *memfs.Node { Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x69\x6D\x70\x6F\x72\x74\x20\x7B\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x2C\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x2C\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x2C\x20\x7D\x20\x66\x72\x6F\x6D\x20\x22\x2E\x2F\x66\x75\x6E\x63\x74\x69\x6F\x6E\x73\x2E\x6A\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x20\x3D\x20\x22\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x20\x3D\x20\x22\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x5F\x61\x63\x74\x69\x6F\x6E\x73\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x20\x3D\x20\x22\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x5F\x69\x6E\x70\x75\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x48\x45\x41\x44\x45\x52\x20\x3D\x20\x22\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x5F\x69\x6E\x70\x75\x74\x5F\x68\x65\x61\x64\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x50\x41\x52\x41\x4D\x20\x3D\x20\x22\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x5F\x69\x6E\x70\x75\x74\x5F\x70\x61\x72\x61\x6D\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x20\x3D\x20\x22\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x5F\x6F\x75\x74\x5F\x6D\x6F\x6E\x6F\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x52\x55\x4E\x20\x3D\x20\x22\x77\x73\x5F\x74\x61\x72\x67\x65\x74\x5F\x6F\x75\x74\x5F\x72\x75\x6E\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x54\x61\x72\x67\x65\x74\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x74\x72\x75\x6E\x6B\x73\x2C\x20\x74\x61\x72\x67\x65\x74\x2C\x20\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x20\x3D\x20\x74\x72\x75\x6E\x6B\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x20\x3D\x20\x74\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x62\x75\x74\x74\x6F\x6E\x5F\x72\x75\x6E\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x72\x65\x71\x75\x65\x73\x74\x5F\x69\x6E\x70\x75\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6F\x75\x74\x5F\x72\x65\x73\x70\x6F\x6E\x73\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x70\x72\x65\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x69\x64\x20\x3D\x20\x6F\x70\x74\x73\x2E\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x54\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x33\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x54\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x6F\x70\x74\x73\x2E\x4E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x54\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x63\x74\x69\x6F\x6E\x73\x28\x65\x6C\x54\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x41\x63\x74\x69\x6F\x6E\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x41\x43\x54\x49\x4F\x4E\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x62\x75\x74\x74\x6F\x6E\x5F\x72\x75\x6E\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x75\x6E\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x62\x75\x74\x74\x6F\x6E\x5F\x72\x75\x6E\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x52\x75\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x62\x75\x74\x74\x6F\x6E\x5F\x72\x75\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x41\x63\x74\x69\x6F\x6E\x73\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x48\x69\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x70\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x48\x69\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x69\x6E\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x48\x69\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x72\x65\x71\x75\x65\x73\x74\x5F\x69\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x72\x65\x71\x75\x65\x73\x74\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x72\x65\x71\x75\x65\x73\x74\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x72\x65\x71\x75\x65\x73\x74\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x48\x65\x61\x64\x65\x72\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x4F\x62\x6A\x65\x63\x74\x2E\x6B\x65\x79\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3D\x3D\x3D\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x48\x45\x41\x44\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x68\x34\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x48\x65\x61\x64\x65\x72\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x65\x79\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x48\x65\x61\x64\x65\x72\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x48\x65\x61\x64\x65\x72\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x2C\x20\x66\x69\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x52\x65\x71\x75\x65\x73\x74\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x72\x61\x6D\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x4F\x62\x6A\x65\x63\x74\x2E\x6B\x65\x79\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x72\x61\x6D\x73\x29\x2E\x6C\x65\x6E\x67\x74\x68\x20\x3D\x3D\x3D\x20\x30\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x49\x4E\x50\x55\x54\x5F\x50\x41\x52\x41\x4D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x50\x61\x72\x61\x6D\x65\x74\x65\x72\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x66\x6F\x72\x20\x28\x63\x6F\x6E\x73\x74\x20\x5B\x6B\x65\x79\x2C\x20\x66\x69\x5D\x20\x6F\x66\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x50\x61\x72\x61\x6D\x73\x29\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x66\x69\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6C\x6F\x61\x64\x57\x73\x54\x61\x72\x67\x65\x74\x50\x61\x72\x61\x6D\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2C\x20\x6B\x65\x79\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x46\x6F\x72\x6D\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x2C\x20\x66\x69\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4F\x75\x74\x70\x75\x74\x28\x70\x61\x72\x65\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x66\x69\x65\x6C\x64\x73\x65\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x52\x55\x4E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x69\x74\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x65\x67\x65\x6E\x64\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x52\x75\x6E\x20\x6F\x75\x74\x70\x75\x74\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x62\x74\x6E\x43\x6C\x65\x61\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x62\x75\x74\x74\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x43\x6C\x65\x61\x72\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x43\x6C\x65\x61\x72\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x62\x74\x6E\x43\x6C\x65\x61\x72\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x43\x6C\x65\x61\x72\x4F\x75\x74\x70\x75\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x69\x74\x6C\x65\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x62\x74\x6E\x43\x6C\x65\x61\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6F\x75\x74\x5F\x72\x65\x73\x70\x6F\x6E\x73\x65\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x43\x4C\x41\x53\x53\x5F\x57\x53\x5F\x54\x41\x52\x47\x45\x54\x5F\x4F\x55\x54\x5F\x4D\x4F\x4E\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x69\x74\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6F\x75\x74\x5F\x72\x65\x73\x70\x6F\x6E\x73\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x70\x61\x72\x65\x6E\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x43\x6C\x65\x61\x72\x4F\x75\x74\x70\x75\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6F\x75\x74\x5F\x72\x65\x73\x70\x6F\x6E\x73\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x61\x73\x79\x6E\x63\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x52\x75\x6E\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x72\x65\x73\x20\x3D\x20\x61\x77\x61\x69\x74\x20\x74\x68\x69\x73\x2E\x74\x72\x75\x6E\x6B\x73\x2E\x72\x75\x6E\x57\x65\x62\x53\x6F\x63\x6B\x65\x74\x28\x74\x68\x69\x73\x2E\x74\x61\x72\x67\x65\x74\x2C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x72\x65\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6F\x75\x74\x5F\x72\x65\x73\x70\x6F\x6E\x73\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x4A\x53\x4F\x4E\x2E\x73\x74\x72\x69\x6E\x67\x69\x66\x79\x28\x72\x65\x73\x2E\x64\x61\x74\x61\x2C\x20\x6E\x75\x6C\x6C\x2C\x20\x32\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"), } node.SetMode(420) - node.SetModTimeUnix(1699681934, 237704643) + node.SetModTimeUnix(1706186497, 773074233) node.SetName("ws_target.js") node.SetSize(4531) return node @@ -433,7 +433,7 @@ func generate__www_wui_input_number_js() *memfs.Node { Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x6E\x75\x6D\x62\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x6E\x75\x6D\x62\x65\x72\x5F\x68\x69\x6E\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x6E\x75\x6D\x62\x65\x72\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x6E\x75\x6D\x62\x65\x72\x5F\x69\x6E\x70\x75\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x6E\x75\x6D\x62\x65\x72\x5F\x6C\x61\x62\x65\x6C\x22\x3B\x0A\x2F\x2F\x0A\x2F\x2F\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x20\x63\x72\x65\x61\x74\x65\x20\x61\x6E\x20\x48\x54\x4D\x4C\x20\x69\x6E\x70\x75\x74\x20\x74\x68\x61\x74\x20\x61\x6C\x6C\x6F\x77\x20\x6E\x75\x6D\x62\x65\x72\x20\x6F\x6E\x6C\x79\x2C\x20\x77\x69\x74\x68\x20\x6F\x70\x74\x69\x6F\x6E\x61\x6C\x0A\x2F\x2F\x20\x6D\x61\x78\x20\x61\x6E\x64\x20\x6D\x69\x6E\x20\x6F\x70\x74\x69\x6F\x6E\x73\x2E\x0A\x2F\x2F\x20\x54\x68\x65\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x6F\x70\x74\x69\x6F\x6E\x73\x20\x61\x72\x65\x20\x22\x6C\x61\x62\x65\x6C\x22\x20\x61\x6E\x64\x20\x22\x76\x61\x6C\x75\x65\x22\x2E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x46\x6F\x72\x6D\x61\x74\x20\x6F\x66\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64\x20\x48\x54\x4D\x4C\x20\x6F\x75\x74\x70\x75\x74\x2C\x0A\x2F\x2F\x0A\x2F\x2F\x09\x3C\x64\x69\x76\x20\x5B\x69\x64\x3D\x24\x7B\x69\x64\x7D\x5D\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x7D\x22\x3E\x0A\x2F\x2F\x09\x09\x3C\x64\x69\x76\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x6C\x61\x62\x65\x6C\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x7D\x20\x5B\x24\x7B\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x7D\x5D\x22\x3E\x0A\x2F\x2F\x09\x09\x09\x09\x24\x7B\x6C\x61\x62\x65\x6C\x7D\x20\x7C\x20\x48\x54\x4D\x4C\x45\x6C\x65\x6D\x65\x6E\x74\x0A\x2F\x2F\x09\x09\x09\x3C\x2F\x6C\x61\x62\x65\x6C\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x69\x6E\x70\x75\x74\x0A\x2F\x2F\x09\x09\x09\x09\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x7D\x20\x5B\x24\x7B\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x7D\x5D\x22\x0A\x2F\x2F\x09\x09\x09\x09\x5B\x6D\x61\x78\x3D\x24\x7B\x6D\x61\x78\x7D\x5D\x0A\x2F\x2F\x09\x09\x09\x09\x5B\x6D\x69\x6E\x3D\x24\x7B\x6D\x69\x6E\x7D\x5D\x0A\x2F\x2F\x09\x09\x09\x09\x5B\x64\x69\x73\x61\x62\x6C\x65\x64\x3D\x24\x7B\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x7D\x5D\x0A\x2F\x2F\x09\x09\x09\x09\x76\x61\x6C\x75\x65\x3D\x24\x7B\x76\x61\x6C\x75\x65\x7D\x0A\x2F\x2F\x09\x09\x09\x3E\x0A\x2F\x2F\x09\x09\x09\x5B\x3C\x73\x70\x61\x6E\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x7D\x22\x3E\x20\x69\x3C\x2F\x73\x70\x61\x6E\x3E\x5D\x0A\x2F\x2F\x09\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x2F\x2F\x09\x09\x5B\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x7D\x22\x3E\x24\x7B\x68\x69\x6E\x74\x7D\x3C\x2F\x64\x69\x76\x3E\x5D\x0A\x2F\x2F\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x55\x73\x65\x72\x20\x63\x61\x6E\x20\x73\x65\x74\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x20\x74\x6F\x20\x72\x65\x63\x65\x69\x76\x65\x20\x6E\x65\x77\x20\x76\x61\x6C\x75\x65\x20\x77\x68\x65\x6E\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x76\x61\x6C\x75\x65\x0A\x2F\x2F\x20\x63\x68\x61\x6E\x67\x65\x73\x20\x61\x6E\x64\x20\x76\x61\x6C\x69\x64\x3B\x20\x6F\x74\x68\x65\x72\x77\x69\x73\x65\x2C\x20\x69\x66\x20\x74\x68\x65\x20\x76\x61\x6C\x75\x65\x20\x69\x73\x20\x69\x6E\x76\x61\x6C\x69\x64\x2C\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x0A\x2F\x2F\x20\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x20\x77\x69\x6C\x6C\x20\x63\x68\x61\x6E\x67\x65\x73\x20\x61\x63\x63\x6F\x72\x64\x69\x6E\x67\x6C\x79\x2E\x0A\x2F\x2F\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x4E\x75\x6D\x62\x65\x72\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x30\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6F\x70\x74\x73\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x69\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x69\x64\x20\x3D\x20\x6F\x70\x74\x73\x2E\x69\x64\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x74\x79\x6C\x65\x2E\x70\x61\x64\x64\x69\x6E\x67\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4C\x61\x62\x65\x6C\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4C\x61\x62\x65\x6C\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x61\x62\x65\x6C\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x20\x3D\x3D\x3D\x20\x22\x73\x74\x72\x69\x6E\x67\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x60\x24\x7B\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x7D\x20\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x69\x6E\x70\x75\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x74\x79\x70\x65\x20\x3D\x20\x22\x6E\x75\x6D\x62\x65\x72\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x73\x74\x65\x70\x20\x3D\x20\x22\x61\x6E\x79\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x22\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x6C\x65\x74\x20\x68\x69\x6E\x74\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x61\x78\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x6D\x61\x78\x20\x3D\x20\x22\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x61\x78\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x20\x3D\x20\x22\x54\x68\x65\x20\x6D\x61\x78\x69\x6D\x75\x6D\x20\x76\x61\x6C\x75\x65\x20\x69\x73\x20\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x61\x78\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x69\x6E\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x6D\x69\x6E\x20\x3D\x20\x22\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x69\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x69\x6E\x74\x20\x3D\x3D\x20\x22\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x20\x3D\x20\x22\x54\x68\x65\x20\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x20\x2B\x3D\x20\x22\x20\x61\x6E\x64\x20\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x69\x6E\x74\x20\x2B\x3D\x20\x22\x6D\x69\x6E\x69\x6D\x75\x6D\x20\x76\x61\x6C\x75\x65\x20\x69\x73\x20\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x69\x6E\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x68\x69\x6E\x74\x20\x21\x3D\x3D\x20\x22\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x74\x69\x74\x6C\x65\x20\x3D\x20\x68\x69\x6E\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x64\x69\x73\x61\x62\x6C\x65\x64\x20\x3D\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x6F\x6E\x6B\x65\x79\x75\x70\x20\x3D\x20\x28\x65\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x68\x69\x73\x2E\x6F\x6E\x4B\x65\x79\x55\x70\x28\x65\x76\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x20\x26\x23\x78\x32\x31\x33\x39\x3B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x6F\x6E\x6D\x6F\x75\x73\x65\x6F\x76\x65\x72\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x73\x74\x79\x6C\x65\x2E\x63\x75\x72\x73\x6F\x72\x20\x3D\x20\x22\x70\x6F\x69\x6E\x74\x65\x72\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x68\x69\x6E\x74\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x20\x7C\x7C\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x4E\x55\x4D\x42\x45\x52\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x68\x69\x6E\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x62\x6F\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x70\x61\x64\x64\x69\x6E\x67\x20\x3D\x20\x22\x34\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x3D\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x6F\x6E\x4B\x65\x79\x55\x70\x28\x65\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x74\x61\x72\x67\x65\x74\x20\x3D\x20\x65\x76\x2E\x74\x61\x72\x67\x65\x74\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x76\x2E\x70\x72\x65\x76\x65\x6E\x74\x44\x65\x66\x61\x75\x6C\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6E\x65\x77\x56\x61\x6C\x75\x65\x20\x3D\x20\x2B\x74\x61\x72\x67\x65\x74\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6E\x65\x77\x56\x61\x6C\x75\x65\x20\x3D\x3D\x3D\x20\x6E\x75\x6C\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x73\x74\x79\x6C\x65\x2E\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72\x20\x3D\x20\x22\x6C\x69\x67\x68\x74\x73\x61\x6C\x6D\x6F\x6E\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x61\x78\x20\x26\x26\x20\x6E\x65\x77\x56\x61\x6C\x75\x65\x20\x3E\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x61\x78\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x73\x74\x79\x6C\x65\x2E\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72\x20\x3D\x20\x22\x6C\x69\x67\x68\x74\x73\x61\x6C\x6D\x6F\x6E\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x69\x6E\x20\x26\x26\x20\x6E\x65\x77\x56\x61\x6C\x75\x65\x20\x3C\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6D\x69\x6E\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x73\x74\x79\x6C\x65\x2E\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72\x20\x3D\x20\x22\x6C\x69\x67\x68\x74\x73\x61\x6C\x6D\x6F\x6E\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x73\x74\x79\x6C\x65\x2E\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x43\x6F\x6C\x6F\x72\x20\x3D\x20\x22\x77\x68\x69\x74\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6E\x65\x77\x56\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x28\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x2F\x2F\x20\x73\x65\x74\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x76\x61\x6C\x75\x65\x2E\x0A\x20\x20\x20\x20\x73\x65\x74\x28\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x22\x22\x20\x2B\x20\x76\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"), } node.SetMode(420) - node.SetModTimeUnix(1699681984, 17960667) + node.SetModTimeUnix(1706186497, 736407354) node.SetName("number.js") node.SetSize(5843) return node @@ -448,7 +448,7 @@ func generate__www_wui_input_option_js() *memfs.Node { Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x65\x78\x70\x6F\x72\x74\x20\x7B\x7D\x3B\x0A"), } node.SetMode(420) - node.SetModTimeUnix(1699681984, 17960667) + node.SetModTimeUnix(1706186497, 753074117) node.SetName("option.js") node.SetSize(117) return node @@ -460,10 +460,10 @@ func generate__www_wui_input_select_js() *memfs.Node { Path: "/wui/input/select.js", ContentType: "text/javascript; charset=utf-8", GenFuncName: "generate__www_wui_input_select_js", - Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x5F\x68\x69\x6E\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x5F\x69\x6E\x70\x75\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x5F\x6C\x61\x62\x65\x6C\x22\x3B\x0A\x2F\x2F\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x20\x63\x72\x65\x61\x74\x65\x20\x61\x6E\x20\x48\x54\x4D\x4C\x20\x69\x6E\x70\x75\x74\x20\x66\x6F\x72\x20\x73\x65\x6C\x65\x63\x74\x69\x6E\x67\x20\x6F\x6E\x65\x20\x6D\x6F\x72\x65\x20\x69\x74\x65\x6D\x2E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x46\x6F\x72\x6D\x61\x74\x20\x6F\x66\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64\x20\x48\x54\x4D\x4C\x20\x6F\x75\x74\x70\x75\x74\x2C\x0A\x2F\x2F\x0A\x2F\x2F\x09\x3C\x64\x69\x76\x20\x5B\x69\x64\x3D\x24\x7B\x69\x64\x7D\x5D\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x7D\x22\x3E\x0A\x2F\x2F\x09\x09\x3C\x64\x69\x76\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x6C\x61\x62\x65\x6C\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x7D\x20\x5B\x24\x7B\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x7D\x5D\x22\x3E\x0A\x2F\x2F\x09\x09\x09\x09\x24\x7B\x6C\x61\x62\x65\x6C\x7D\x20\x7C\x20\x48\x54\x4D\x4C\x45\x6C\x65\x6D\x65\x6E\x74\x0A\x2F\x2F\x09\x09\x09\x3C\x2F\x6C\x61\x62\x65\x6C\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x73\x65\x6C\x65\x63\x74\x0A\x2F\x2F\x09\x09\x09\x09\x6E\x61\x6D\x65\x3D\x24\x7B\x6E\x61\x6D\x65\x7D\x0A\x2F\x2F\x09\x09\x09\x09\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x7D\x20\x5B\x24\x7B\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x7D\x5D\x22\x0A\x2F\x2F\x09\x09\x09\x09\x5B\x64\x69\x73\x61\x62\x6C\x65\x64\x3D\x24\x7B\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x7D\x5D\x0A\x2F\x2F\x09\x09\x09\x3E\x0A\x2F\x2F\x09\x09\x09\x09\x3C\x6F\x70\x74\x69\x6F\x6E\x20\x76\x61\x6C\x75\x65\x3D\x22\x24\x7B\x6F\x70\x74\x69\x6F\x6E\x73\x5B\x6B\x65\x79\x5D\x2E\x76\x61\x6C\x75\x65\x7D\x22\x3E\x24\x7B\x6B\x65\x79\x20\x69\x6E\x20\x6F\x70\x74\x69\x6F\x6E\x73\x7D\x3C\x2F\x6F\x70\x74\x69\x6F\x6E\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x2F\x73\x65\x6C\x65\x63\x74\x3E\x0A\x2F\x2F\x09\x09\x09\x5B\x3C\x73\x70\x61\x6E\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x7D\x22\x3E\x69\x20\x3C\x2F\x73\x70\x61\x6E\x3E\x5D\x0A\x2F\x2F\x09\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x2F\x2F\x09\x09\x5B\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x7D\x22\x3E\x24\x7B\x68\x69\x6E\x74\x7D\x3C\x2F\x64\x69\x76\x3E\x5D\x0A\x2F\x2F\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x54\x68\x65\x20\x22\x68\x69\x6E\x74\x22\x20\x6F\x70\x74\x69\x6F\x6E\x20\x69\x73\x20\x6F\x70\x74\x69\x6F\x6E\x61\x6C\x2C\x20\x69\x66\x20\x69\x74\x20\x73\x65\x74\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x77\x69\x6C\x6C\x20\x68\x61\x76\x65\x20\x61\x20\x68\x69\x6E\x74\x20\x74\x6F\x67\x67\x6C\x65\x72\x0A\x2F\x2F\x20\x74\x6F\x20\x64\x69\x73\x70\x6C\x61\x79\x20\x6F\x72\x20\x68\x69\x64\x65\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x69\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E\x2E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x55\x73\x65\x72\x20\x63\x61\x6E\x20\x73\x65\x74\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x20\x74\x6F\x20\x72\x65\x63\x65\x69\x76\x65\x20\x6E\x65\x77\x20\x76\x61\x6C\x75\x65\x20\x77\x68\x65\x6E\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x76\x61\x6C\x75\x65\x0A\x2F\x2F\x20\x63\x68\x61\x6E\x67\x65\x73\x2E\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x5F\x6B\x65\x79\x20\x3D\x20\x7B\x7D\x3B\x20\x2F\x2F\x20\x54\x68\x65\x20\x72\x65\x76\x65\x72\x73\x65\x20\x6F\x66\x20\x6F\x70\x74\x69\x6F\x6E\x73\x2E\x6F\x70\x74\x69\x6F\x6E\x73\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x69\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x69\x64\x20\x3D\x20\x6F\x70\x74\x73\x2E\x69\x64\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x74\x79\x6C\x65\x2E\x70\x61\x64\x64\x69\x6E\x67\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4C\x61\x62\x65\x6C\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4C\x61\x62\x65\x6C\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x61\x62\x65\x6C\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x20\x3D\x3D\x3D\x20\x22\x73\x74\x72\x69\x6E\x67\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x60\x24\x7B\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x7D\x20\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x65\x6C\x65\x63\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x6E\x61\x6D\x65\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x70\x74\x69\x6F\x6E\x73\x29\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x5B\x6B\x65\x79\x2C\x20\x6F\x70\x74\x69\x6F\x6E\x5D\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6F\x70\x74\x69\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6F\x70\x74\x69\x6F\x6E\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x6B\x65\x79\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x69\x6F\x6E\x2E\x73\x65\x6C\x65\x63\x74\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x2E\x73\x65\x6C\x65\x63\x74\x65\x64\x20\x3D\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x5F\x6B\x65\x79\x5B\x6F\x70\x74\x69\x6F\x6E\x2E\x76\x61\x6C\x75\x65\x5D\x20\x3D\x20\x6B\x65\x79\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x64\x69\x73\x61\x62\x6C\x65\x64\x20\x3D\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x65\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x76\x2E\x70\x72\x65\x76\x65\x6E\x74\x44\x65\x66\x61\x75\x6C\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x76\x2E\x73\x74\x6F\x70\x50\x72\x6F\x70\x61\x67\x61\x74\x69\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x49\x6E\x70\x75\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x20\x26\x23\x78\x32\x31\x33\x39\x3B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x6F\x6E\x6D\x6F\x75\x73\x65\x6F\x76\x65\x72\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x73\x74\x79\x6C\x65\x2E\x63\x75\x72\x73\x6F\x72\x20\x3D\x20\x22\x70\x6F\x69\x6E\x74\x65\x72\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x20\x7C\x7C\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x62\x6F\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x70\x61\x64\x64\x69\x6E\x67\x20\x3D\x20\x22\x34\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x3D\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x49\x6E\x70\x75\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x75\x65\x20\x3D\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x21\x3D\x3D\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6B\x65\x79\x20\x3D\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x5F\x6B\x65\x79\x5B\x76\x61\x6C\x75\x65\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x28\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x2F\x2F\x20\x53\x65\x74\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x76\x61\x6C\x75\x65\x2E\x0A\x20\x20\x20\x20\x53\x65\x74\x28\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"), + Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x5F\x68\x69\x6E\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x5F\x69\x6E\x70\x75\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x65\x6C\x65\x63\x74\x5F\x6C\x61\x62\x65\x6C\x22\x3B\x0A\x2F\x2F\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x20\x63\x72\x65\x61\x74\x65\x20\x61\x6E\x20\x48\x54\x4D\x4C\x20\x69\x6E\x70\x75\x74\x20\x66\x6F\x72\x20\x73\x65\x6C\x65\x63\x74\x69\x6E\x67\x20\x6F\x6E\x65\x20\x6D\x6F\x72\x65\x20\x69\x74\x65\x6D\x2E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x46\x6F\x72\x6D\x61\x74\x20\x6F\x66\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64\x20\x48\x54\x4D\x4C\x20\x6F\x75\x74\x70\x75\x74\x2C\x0A\x2F\x2F\x0A\x2F\x2F\x09\x3C\x64\x69\x76\x20\x5B\x69\x64\x3D\x24\x7B\x69\x64\x7D\x5D\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x7D\x22\x3E\x0A\x2F\x2F\x09\x09\x3C\x64\x69\x76\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x6C\x61\x62\x65\x6C\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x7D\x20\x5B\x24\x7B\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x7D\x5D\x22\x3E\x0A\x2F\x2F\x09\x09\x09\x09\x24\x7B\x6C\x61\x62\x65\x6C\x7D\x20\x7C\x20\x48\x54\x4D\x4C\x45\x6C\x65\x6D\x65\x6E\x74\x0A\x2F\x2F\x09\x09\x09\x3C\x2F\x6C\x61\x62\x65\x6C\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x73\x65\x6C\x65\x63\x74\x0A\x2F\x2F\x09\x09\x09\x09\x6E\x61\x6D\x65\x3D\x24\x7B\x6E\x61\x6D\x65\x7D\x0A\x2F\x2F\x09\x09\x09\x09\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x7D\x20\x5B\x24\x7B\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x7D\x5D\x22\x0A\x2F\x2F\x09\x09\x09\x09\x5B\x64\x69\x73\x61\x62\x6C\x65\x64\x3D\x24\x7B\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x7D\x5D\x0A\x2F\x2F\x09\x09\x09\x3E\x0A\x2F\x2F\x09\x09\x09\x09\x3C\x6F\x70\x74\x69\x6F\x6E\x20\x76\x61\x6C\x75\x65\x3D\x22\x24\x7B\x6F\x70\x74\x69\x6F\x6E\x73\x5B\x6B\x65\x79\x5D\x2E\x76\x61\x6C\x75\x65\x7D\x22\x3E\x24\x7B\x6B\x65\x79\x20\x69\x6E\x20\x6F\x70\x74\x69\x6F\x6E\x73\x7D\x3C\x2F\x6F\x70\x74\x69\x6F\x6E\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x2F\x73\x65\x6C\x65\x63\x74\x3E\x0A\x2F\x2F\x09\x09\x09\x5B\x3C\x73\x70\x61\x6E\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x7D\x22\x3E\x69\x20\x3C\x2F\x73\x70\x61\x6E\x3E\x5D\x0A\x2F\x2F\x09\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x2F\x2F\x09\x09\x5B\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x7D\x22\x3E\x24\x7B\x68\x69\x6E\x74\x7D\x3C\x2F\x64\x69\x76\x3E\x5D\x0A\x2F\x2F\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x54\x68\x65\x20\x22\x68\x69\x6E\x74\x22\x20\x6F\x70\x74\x69\x6F\x6E\x20\x69\x73\x20\x6F\x70\x74\x69\x6F\x6E\x61\x6C\x2C\x20\x69\x66\x20\x69\x74\x20\x73\x65\x74\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x77\x69\x6C\x6C\x20\x68\x61\x76\x65\x20\x61\x20\x68\x69\x6E\x74\x20\x74\x6F\x67\x67\x6C\x65\x72\x0A\x2F\x2F\x20\x74\x6F\x20\x64\x69\x73\x70\x6C\x61\x79\x20\x6F\x72\x20\x68\x69\x64\x65\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x69\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E\x2E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x55\x73\x65\x72\x20\x63\x61\x6E\x20\x73\x65\x74\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x20\x74\x6F\x20\x72\x65\x63\x65\x69\x76\x65\x20\x6E\x65\x77\x20\x76\x61\x6C\x75\x65\x20\x77\x68\x65\x6E\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x76\x61\x6C\x75\x65\x0A\x2F\x2F\x20\x63\x68\x61\x6E\x67\x65\x73\x2E\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x65\x6C\x65\x63\x74\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x5F\x6B\x65\x79\x20\x3D\x20\x7B\x7D\x3B\x20\x2F\x2F\x20\x54\x68\x65\x20\x72\x65\x76\x65\x72\x73\x65\x20\x6F\x66\x20\x6F\x70\x74\x69\x6F\x6E\x73\x2E\x6F\x70\x74\x69\x6F\x6E\x73\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x69\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x69\x64\x20\x3D\x20\x6F\x70\x74\x73\x2E\x69\x64\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x74\x79\x6C\x65\x2E\x70\x61\x64\x64\x69\x6E\x67\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4C\x61\x62\x65\x6C\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4C\x61\x62\x65\x6C\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x61\x62\x65\x6C\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x20\x3D\x3D\x3D\x20\x22\x73\x74\x72\x69\x6E\x67\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x60\x24\x7B\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x7D\x20\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x65\x6C\x65\x63\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x6E\x61\x6D\x65\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6E\x61\x6D\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x4F\x62\x6A\x65\x63\x74\x2E\x65\x6E\x74\x72\x69\x65\x73\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x70\x74\x69\x6F\x6E\x73\x29\x2E\x66\x6F\x72\x45\x61\x63\x68\x28\x28\x5B\x6B\x65\x79\x2C\x20\x6F\x70\x74\x69\x6F\x6E\x5D\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6F\x70\x74\x69\x6F\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6F\x70\x74\x69\x6F\x6E\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x6B\x65\x79\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x69\x6F\x6E\x2E\x73\x65\x6C\x65\x63\x74\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x2E\x73\x65\x6C\x65\x63\x74\x65\x64\x20\x3D\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x65\x6C\x4F\x70\x74\x69\x6F\x6E\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x5F\x6B\x65\x79\x5B\x6F\x70\x74\x69\x6F\x6E\x2E\x76\x61\x6C\x75\x65\x5D\x20\x3D\x20\x6B\x65\x79\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x64\x69\x73\x61\x62\x6C\x65\x64\x20\x3D\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x65\x76\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x76\x2E\x70\x72\x65\x76\x65\x6E\x74\x44\x65\x66\x61\x75\x6C\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x65\x76\x2E\x73\x74\x6F\x70\x50\x72\x6F\x70\x61\x67\x61\x74\x69\x6F\x6E\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x49\x6E\x70\x75\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x20\x26\x23\x78\x32\x31\x33\x39\x3B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x6F\x6E\x6D\x6F\x75\x73\x65\x6F\x76\x65\x72\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x73\x74\x79\x6C\x65\x2E\x63\x75\x72\x73\x6F\x72\x20\x3D\x20\x22\x70\x6F\x69\x6E\x74\x65\x72\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x45\x4C\x45\x43\x54\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x20\x7C\x7C\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x62\x6F\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x70\x61\x64\x64\x69\x6E\x67\x20\x3D\x20\x22\x34\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x3D\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x49\x6E\x70\x75\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x21\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x66\x61\x6C\x73\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x76\x61\x6C\x75\x65\x20\x3D\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x21\x3D\x3D\x20\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x6B\x65\x79\x20\x3D\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x5F\x6B\x65\x79\x5B\x76\x61\x6C\x75\x65\x5D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6B\x65\x79\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x28\x6B\x65\x79\x2C\x20\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x72\x65\x74\x75\x72\x6E\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x2F\x2F\x20\x73\x65\x74\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x76\x61\x6C\x75\x65\x2E\x0A\x20\x20\x20\x20\x73\x65\x74\x28\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"), } node.SetMode(420) - node.SetModTimeUnix(1699681984, 24627367) + node.SetModTimeUnix(1706186497, 759740822) node.SetName("select.js") node.SetSize(5364) return node @@ -478,7 +478,7 @@ func generate__www_wui_input_string_js() *memfs.Node { Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x74\x72\x69\x6E\x67\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x74\x72\x69\x6E\x67\x5F\x68\x69\x6E\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x74\x72\x69\x6E\x67\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x74\x72\x69\x6E\x67\x5F\x69\x6E\x70\x75\x74\x22\x3B\x0A\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x20\x3D\x20\x22\x77\x75\x69\x5F\x69\x6E\x70\x75\x74\x5F\x73\x74\x72\x69\x6E\x67\x5F\x6C\x61\x62\x65\x6C\x22\x3B\x0A\x2F\x2F\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x63\x72\x65\x61\x74\x65\x20\x61\x6E\x20\x48\x54\x4D\x4C\x20\x69\x6E\x70\x75\x74\x20\x66\x6F\x72\x20\x73\x74\x72\x69\x6E\x67\x20\x77\x69\x74\x68\x20\x70\x72\x65\x64\x65\x66\x69\x6E\x65\x64\x20\x6F\x70\x74\x69\x6F\x6E\x73\x2E\x0A\x2F\x2F\x20\x54\x68\x65\x20\x72\x65\x71\x75\x69\x72\x65\x64\x20\x6F\x70\x74\x69\x6F\x6E\x73\x20\x61\x72\x65\x20\x22\x6C\x61\x62\x65\x6C\x22\x20\x61\x6E\x64\x20\x22\x76\x61\x6C\x75\x65\x22\x2E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x46\x6F\x72\x6D\x61\x74\x20\x6F\x66\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x64\x20\x48\x54\x4D\x4C\x20\x6F\x75\x74\x70\x75\x74\x2C\x0A\x2F\x2F\x0A\x2F\x2F\x09\x3C\x64\x69\x76\x20\x5B\x69\x64\x3D\x24\x7B\x69\x64\x7D\x5D\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x7D\x22\x3E\x0A\x2F\x2F\x09\x09\x3C\x64\x69\x76\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x6C\x61\x62\x65\x6C\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x7D\x20\x5B\x24\x7B\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x7D\x5D\x22\x3E\x0A\x2F\x2F\x09\x09\x09\x09\x24\x7B\x6C\x61\x62\x65\x6C\x7D\x20\x7C\x20\x48\x54\x4D\x4C\x45\x6C\x65\x6D\x65\x6E\x74\x0A\x2F\x2F\x09\x09\x09\x3C\x2F\x6C\x61\x62\x65\x6C\x3E\x0A\x2F\x2F\x09\x09\x09\x3C\x69\x6E\x70\x75\x74\x0A\x2F\x2F\x09\x09\x09\x09\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x7D\x20\x5B\x24\x7B\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x7D\x5D\x22\x0A\x2F\x2F\x09\x09\x09\x09\x5B\x64\x69\x73\x61\x62\x6C\x65\x64\x3D\x24\x7B\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x7D\x5D\x0A\x2F\x2F\x09\x09\x09\x09\x76\x61\x6C\x75\x65\x3D\x24\x7B\x76\x61\x6C\x75\x65\x7D\x0A\x2F\x2F\x09\x09\x09\x3E\x0A\x2F\x2F\x09\x09\x09\x5B\x3C\x73\x70\x61\x6E\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x7D\x22\x3E\x69\x20\x3C\x2F\x73\x70\x61\x6E\x3E\x5D\x0A\x2F\x2F\x09\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x2F\x2F\x09\x09\x5B\x3C\x64\x69\x76\x20\x63\x6C\x61\x73\x73\x3D\x22\x24\x7B\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x7D\x22\x3E\x24\x7B\x68\x69\x6E\x74\x7D\x3C\x2F\x64\x69\x76\x3E\x5D\x0A\x2F\x2F\x09\x3C\x2F\x64\x69\x76\x3E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x54\x68\x65\x20\x22\x68\x69\x6E\x74\x22\x20\x6F\x70\x74\x69\x6F\x6E\x20\x69\x73\x20\x6F\x70\x74\x69\x6F\x6E\x61\x6C\x2C\x20\x69\x66\x20\x69\x74\x20\x73\x65\x74\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x77\x69\x6C\x6C\x20\x68\x61\x76\x65\x20\x61\x20\x68\x69\x6E\x74\x20\x74\x6F\x67\x67\x6C\x65\x72\x0A\x2F\x2F\x20\x74\x6F\x20\x64\x69\x73\x70\x6C\x61\x79\x20\x6F\x72\x20\x68\x69\x64\x65\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x69\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E\x2E\x0A\x2F\x2F\x0A\x2F\x2F\x20\x55\x73\x65\x72\x20\x63\x61\x6E\x20\x73\x65\x74\x20\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x20\x74\x6F\x20\x72\x65\x63\x65\x69\x76\x65\x20\x6E\x65\x77\x20\x76\x61\x6C\x75\x65\x20\x77\x68\x65\x6E\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x76\x61\x6C\x75\x65\x0A\x2F\x2F\x20\x63\x68\x61\x6E\x67\x65\x73\x2E\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x57\x75\x69\x49\x6E\x70\x75\x74\x53\x74\x72\x69\x6E\x67\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x6F\x70\x74\x73\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x20\x3D\x20\x6F\x70\x74\x73\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x6F\x70\x74\x73\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x69\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x69\x64\x20\x3D\x20\x6F\x70\x74\x73\x2E\x69\x64\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x73\x74\x79\x6C\x65\x2E\x70\x61\x64\x64\x69\x6E\x67\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x77\x72\x61\x70\x70\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x4C\x61\x62\x65\x6C\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x77\x72\x61\x70\x70\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x4C\x61\x62\x65\x6C\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x6C\x61\x62\x65\x6C\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x4C\x41\x42\x45\x4C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x79\x70\x65\x6F\x66\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x20\x3D\x3D\x3D\x20\x22\x73\x74\x72\x69\x6E\x67\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x60\x24\x7B\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x7D\x20\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x6C\x61\x62\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x49\x6E\x70\x75\x74\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x69\x6E\x70\x75\x74\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x50\x55\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x63\x6C\x61\x73\x73\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x22\x22\x20\x2B\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x69\x73\x5F\x64\x69\x73\x61\x62\x6C\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x64\x69\x73\x61\x62\x6C\x65\x64\x20\x3D\x20\x74\x72\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x6F\x6E\x6B\x65\x79\x75\x70\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x21\x3D\x3D\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x6F\x6E\x43\x68\x61\x6E\x67\x65\x48\x61\x6E\x64\x6C\x65\x72\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x77\x72\x61\x70\x70\x65\x72\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x70\x61\x6E\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x5F\x54\x4F\x47\x47\x4C\x45\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x22\x20\x26\x23\x78\x32\x31\x33\x39\x3B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x6F\x6E\x6D\x6F\x75\x73\x65\x6F\x76\x65\x72\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x73\x74\x79\x6C\x65\x2E\x63\x75\x72\x73\x6F\x72\x20\x3D\x20\x22\x70\x6F\x69\x6E\x74\x65\x72\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x2E\x6F\x6E\x63\x6C\x69\x63\x6B\x20\x3D\x20\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x6F\x6E\x43\x6C\x69\x63\x6B\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x77\x72\x61\x70\x70\x65\x72\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x72\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x67\x65\x6E\x65\x72\x61\x74\x65\x48\x69\x6E\x74\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x49\x4E\x50\x55\x54\x5F\x53\x54\x52\x49\x4E\x47\x5F\x43\x4C\x41\x53\x53\x5F\x48\x49\x4E\x54\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x68\x69\x6E\x74\x20\x7C\x7C\x20\x22\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x6F\x70\x74\x73\x2E\x69\x73\x5F\x68\x69\x6E\x74\x5F\x74\x6F\x67\x67\x6C\x65\x64\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x62\x6F\x72\x64\x65\x72\x52\x61\x64\x69\x75\x73\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x70\x61\x64\x64\x69\x6E\x67\x20\x3D\x20\x22\x34\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x6D\x61\x72\x67\x69\x6E\x54\x6F\x70\x20\x3D\x20\x22\x32\x70\x78\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x6F\x6E\x43\x6C\x69\x63\x6B\x48\x69\x6E\x74\x54\x6F\x67\x67\x6C\x65\x72\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x66\x20\x28\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x3D\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x62\x6C\x6F\x63\x6B\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x65\x6C\x73\x65\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x68\x69\x6E\x74\x2E\x73\x74\x79\x6C\x65\x2E\x64\x69\x73\x70\x6C\x61\x79\x20\x3D\x20\x22\x6E\x6F\x6E\x65\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x2F\x2F\x20\x73\x65\x74\x20\x74\x68\x65\x20\x69\x6E\x70\x75\x74\x20\x76\x61\x6C\x75\x65\x2E\x0A\x20\x20\x20\x20\x73\x65\x74\x28\x76\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x5F\x69\x6E\x70\x75\x74\x2E\x76\x61\x6C\x75\x65\x20\x3D\x20\x76\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"), } node.SetMode(420) - node.SetModTimeUnix(1699681984, 11293966) + node.SetModTimeUnix(1706186497, 726407296) node.SetName("string.js") node.SetSize(4673) return node @@ -508,7 +508,7 @@ func generate__www_wui_notif_notif_js() *memfs.Node { Content: []byte("\x2F\x2F\x20\x53\x50\x44\x58\x2D\x46\x69\x6C\x65\x43\x6F\x70\x79\x72\x69\x67\x68\x74\x54\x65\x78\x74\x3A\x20\x32\x30\x32\x31\x20\x4D\x2E\x20\x53\x68\x75\x6C\x68\x61\x6E\x20\x3C\x6D\x73\x40\x6B\x69\x6C\x61\x62\x69\x74\x2E\x69\x6E\x66\x6F\x3E\x0A\x2F\x2F\x20\x53\x50\x44\x58\x2D\x4C\x69\x63\x65\x6E\x73\x65\x2D\x49\x64\x65\x6E\x74\x69\x66\x69\x65\x72\x3A\x20\x47\x50\x4C\x2D\x33\x2E\x30\x2D\x6F\x72\x2D\x6C\x61\x74\x65\x72\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x49\x44\x20\x3D\x20\x22\x77\x75\x69\x5F\x6E\x6F\x74\x69\x66\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x46\x4F\x20\x3D\x20\x22\x77\x75\x69\x5F\x6E\x6F\x74\x69\x66\x5F\x69\x6E\x66\x6F\x22\x3B\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6F\x6E\x73\x74\x20\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x43\x4C\x41\x53\x53\x5F\x45\x52\x52\x4F\x52\x20\x3D\x20\x22\x77\x75\x69\x5F\x6E\x6F\x74\x69\x66\x5F\x65\x72\x72\x6F\x72\x22\x3B\x0A\x2F\x2F\x20\x57\x75\x69\x4E\x6F\x74\x69\x66\x20\x69\x6D\x70\x6C\x65\x6D\x65\x6E\x74\x20\x74\x68\x65\x20\x48\x54\x4D\x4C\x20\x69\x6E\x74\x65\x72\x66\x61\x63\x65\x20\x74\x6F\x20\x64\x69\x73\x70\x6C\x61\x79\x20\x70\x6F\x70\x2D\x75\x70\x20\x6E\x6F\x74\x69\x66\x69\x63\x61\x74\x69\x6F\x6E\x2E\x0A\x2F\x2F\x20\x54\x68\x65\x20\x6E\x6F\x74\x69\x66\x69\x63\x61\x74\x69\x6F\x6E\x20\x63\x61\x6E\x20\x62\x65\x20\x74\x72\x69\x67\x67\x65\x72\x65\x64\x20\x62\x79\x20\x63\x61\x6C\x6C\x69\x6E\x67\x20\x6D\x65\x74\x68\x6F\x64\x20\x69\x6E\x66\x6F\x28\x29\x20\x6F\x72\x20\x65\x72\x72\x6F\x72\x28\x29\x2E\x0A\x2F\x2F\x20\x45\x61\x63\x68\x20\x70\x6F\x70\x2D\x75\x70\x20\x68\x61\x73\x20\x35\x20\x73\x65\x63\x6F\x6E\x64\x73\x20\x64\x75\x72\x61\x74\x69\x6F\x6E\x2C\x20\x61\x66\x74\x65\x72\x20\x74\x68\x61\x74\x20\x74\x68\x65\x79\x20\x77\x69\x6C\x6C\x20\x62\x65\x20\x72\x65\x6D\x6F\x76\x65\x64\x0A\x2F\x2F\x20\x61\x75\x74\x6F\x6D\x61\x74\x69\x63\x61\x6C\x6C\x79\x2E\x0A\x65\x78\x70\x6F\x72\x74\x20\x63\x6C\x61\x73\x73\x20\x57\x75\x69\x4E\x6F\x74\x69\x66\x20\x7B\x0A\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x72\x75\x63\x74\x6F\x72\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x74\x69\x6D\x65\x6F\x75\x74\x20\x3D\x20\x35\x30\x30\x30\x3B\x20\x2F\x2F\x20\x35\x20\x73\x65\x63\x6F\x6E\x64\x73\x20\x74\x69\x6D\x65\x6F\x75\x74\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x69\x64\x20\x3D\x20\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x49\x44\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x62\x6F\x64\x79\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x74\x68\x69\x73\x2E\x65\x6C\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x69\x6E\x69\x74\x53\x74\x79\x6C\x65\x28\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x2F\x2F\x20\x69\x6E\x66\x6F\x20\x73\x68\x6F\x77\x20\x74\x68\x65\x20\x6D\x73\x67\x20\x61\x73\x20\x69\x6E\x66\x6F\x72\x6D\x61\x74\x69\x6F\x6E\x2E\x0A\x20\x20\x20\x20\x69\x6E\x66\x6F\x28\x6D\x73\x67\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x69\x74\x65\x6D\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6D\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x6D\x73\x67\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6D\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x46\x4F\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x69\x74\x65\x6D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64\x28\x69\x74\x65\x6D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x20\x74\x68\x69\x73\x2E\x74\x69\x6D\x65\x6F\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x2F\x2F\x20\x65\x72\x72\x6F\x72\x20\x73\x68\x6F\x77\x20\x74\x68\x65\x20\x6D\x73\x67\x20\x61\x73\x20\x61\x6E\x20\x65\x72\x72\x6F\x72\x2E\x0A\x20\x20\x20\x20\x65\x72\x72\x6F\x72\x28\x6D\x73\x67\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x69\x74\x65\x6D\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x64\x69\x76\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6D\x2E\x69\x6E\x6E\x65\x72\x48\x54\x4D\x4C\x20\x3D\x20\x6D\x73\x67\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x69\x74\x65\x6D\x2E\x63\x6C\x61\x73\x73\x4C\x69\x73\x74\x2E\x61\x64\x64\x28\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x43\x4C\x41\x53\x53\x5F\x45\x52\x52\x4F\x52\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x69\x74\x65\x6D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x65\x74\x54\x69\x6D\x65\x6F\x75\x74\x28\x28\x29\x20\x3D\x3E\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x74\x68\x69\x73\x2E\x65\x6C\x2E\x72\x65\x6D\x6F\x76\x65\x43\x68\x69\x6C\x64\x28\x69\x74\x65\x6D\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x7D\x2C\x20\x74\x68\x69\x73\x2E\x74\x69\x6D\x65\x6F\x75\x74\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x20\x20\x20\x20\x69\x6E\x69\x74\x53\x74\x79\x6C\x65\x28\x29\x20\x7B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6F\x6E\x73\x74\x20\x73\x74\x79\x6C\x65\x20\x3D\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x63\x72\x65\x61\x74\x65\x45\x6C\x65\x6D\x65\x6E\x74\x28\x22\x73\x74\x79\x6C\x65\x22\x29\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6C\x65\x2E\x74\x79\x70\x65\x20\x3D\x20\x22\x74\x65\x78\x74\x2F\x63\x73\x73\x22\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x73\x74\x79\x6C\x65\x2E\x69\x6E\x6E\x65\x72\x54\x65\x78\x74\x20\x3D\x20\x60\x0A\x09\x09\x09\x23\x24\x7B\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x49\x44\x7D\x20\x7B\x0A\x09\x09\x09\x09\x6C\x65\x66\x74\x3A\x20\x31\x30\x25\x3B\x0A\x09\x09\x09\x09\x70\x6F\x73\x69\x74\x69\x6F\x6E\x3A\x20\x66\x69\x78\x65\x64\x3B\x0A\x09\x09\x09\x09\x74\x6F\x70\x3A\x20\x31\x65\x6D\x3B\x0A\x09\x09\x09\x09\x77\x69\x64\x74\x68\x3A\x20\x38\x30\x25\x3B\x0A\x09\x09\x09\x09\x7A\x2D\x69\x6E\x64\x65\x78\x3A\x20\x31\x30\x30\x30\x30\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x09\x2E\x24\x7B\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x43\x4C\x41\x53\x53\x5F\x49\x4E\x46\x4F\x7D\x20\x7B\x0A\x09\x09\x09\x09\x62\x6F\x72\x64\x65\x72\x3A\x20\x31\x70\x78\x20\x73\x6F\x6C\x69\x64\x20\x73\x69\x6C\x76\x65\x72\x3B\x0A\x09\x09\x09\x09\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x2D\x63\x6F\x6C\x6F\x72\x3A\x20\x68\x6F\x6E\x65\x79\x64\x65\x77\x3B\x0A\x09\x09\x09\x09\x6D\x61\x72\x67\x69\x6E\x2D\x62\x6F\x74\x74\x6F\x6D\x3A\x20\x31\x65\x6D\x3B\x0A\x09\x09\x09\x09\x70\x61\x64\x64\x69\x6E\x67\x3A\x20\x31\x65\x6D\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x09\x2E\x24\x7B\x57\x55\x49\x5F\x4E\x4F\x54\x49\x46\x5F\x43\x4C\x41\x53\x53\x5F\x45\x52\x52\x4F\x52\x7D\x20\x7B\x0A\x09\x09\x09\x09\x62\x6F\x72\x64\x65\x72\x3A\x20\x31\x70\x78\x20\x73\x6F\x6C\x69\x64\x20\x73\x61\x6C\x6D\x6F\x6E\x3B\x0A\x09\x09\x09\x09\x62\x61\x63\x6B\x67\x72\x6F\x75\x6E\x64\x2D\x63\x6F\x6C\x6F\x72\x3A\x20\x6C\x69\x67\x68\x74\x73\x61\x6C\x6D\x6F\x6E\x3B\x0A\x09\x09\x09\x09\x6D\x61\x72\x67\x69\x6E\x2D\x62\x6F\x74\x74\x6F\x6D\x3A\x20\x31\x65\x6D\x3B\x0A\x09\x09\x09\x09\x70\x61\x64\x64\x69\x6E\x67\x3A\x20\x31\x65\x6D\x3B\x0A\x09\x09\x09\x7D\x0A\x09\x09\x60\x3B\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x64\x6F\x63\x75\x6D\x65\x6E\x74\x2E\x68\x65\x61\x64\x2E\x61\x70\x70\x65\x6E\x64\x43\x68\x69\x6C\x64\x28\x73\x74\x79\x6C\x65\x29\x3B\x0A\x20\x20\x20\x20\x7D\x0A\x7D\x0A"), } node.SetMode(420) - node.SetModTimeUnix(1699681984, 34627419) + node.SetModTimeUnix(1706186497, 779740938) node.SetName("notif.js") node.SetSize(1975) return node diff --git a/run_request.go b/run_request.go index 2694288..7c426cc 100644 --- a/run_request.go +++ b/run_request.go @@ -16,7 +16,7 @@ type RunRequest struct { Target Target WebSocketTarget WebSocketTarget - HttpTarget HttpTarget + HTTPTarget HTTPTarget } // generateRunRequest merge the run request with original target and HTTP @@ -25,7 +25,7 @@ func generateRunRequest( env *Environment, req *RunRequest, origTarget *Target, - origHttpTarget *HttpTarget, + origHTTPTarget *HTTPTarget, ) (outrr *RunRequest) { if req.Target.Opts.Duration > 0 && req.Target.Opts.Duration <= env.MaxAttackDuration { origTarget.Opts.Duration = req.Target.Opts.Duration @@ -40,22 +40,22 @@ func generateRunRequest( if req.Target.Opts.Timeout > 0 && req.Target.Opts.Timeout <= DefaultAttackTimeout { origTarget.Opts.Timeout = req.Target.Opts.Timeout } - if origHttpTarget.IsCustomizable { - origHttpTarget.Method = req.HttpTarget.Method - origHttpTarget.Path = req.HttpTarget.Path - origHttpTarget.RequestType = req.HttpTarget.RequestType + if origHTTPTarget.IsCustomizable { + origHTTPTarget.Method = req.HTTPTarget.Method + origHTTPTarget.Path = req.HTTPTarget.Path + origHTTPTarget.RequestType = req.HTTPTarget.RequestType } outrr = &RunRequest{ Target: *origTarget, } - outrr.HttpTarget.clone(origHttpTarget) + outrr.HTTPTarget.clone(origHTTPTarget) outrr.Target.Vars = req.Target.Vars - outrr.HttpTarget.Headers = req.HttpTarget.Headers - outrr.HttpTarget.Params = req.HttpTarget.Params - outrr.HttpTarget.paramsToPath() + outrr.HTTPTarget.Headers = req.HTTPTarget.Headers + outrr.HTTPTarget.Params = req.HTTPTarget.Params + outrr.HTTPTarget.paramsToPath() return outrr } @@ -94,5 +94,5 @@ func generateWebSocketTarget( } func (rr *RunRequest) String() string { - return fmt.Sprintf("Target:%v HttpTarget:%s\n", rr.Target, rr.HttpTarget.String()) + return fmt.Sprintf(`Target:%v HTTPTarget:%s`, rr.Target, rr.HTTPTarget.String()) } diff --git a/run_response.go b/run_response.go index 9df7671..0586c6e 100644 --- a/run_response.go +++ b/run_response.go @@ -25,20 +25,20 @@ type RunResponse struct { ResponseStatusCode int } -// SetHttpRequest dump the HTTP request including body into the DumpRequest +// SetHTTPRequest dump the HTTP request including body into the DumpRequest // field. -func (rres *RunResponse) SetHttpRequest(req *http.Request) (err error) { +func (rres *RunResponse) SetHTTPRequest(req *http.Request) (err error) { rres.DumpRequest, err = httputil.DumpRequest(req, true) if err != nil { - return fmt.Errorf("SetHttpRequest: %w", err) + return fmt.Errorf(`SetHTTPRequest: %w`, err) } return nil } -// SetHttpResponse dump the HTTP response including body into the DumpResponse +// SetHTTPResponse dump the HTTP response including body into the DumpResponse // field. -func (rres *RunResponse) SetHttpResponse(res *http.Response) (err error) { - logp := "SetHttpResponse" +func (rres *RunResponse) SetHTTPResponse(res *http.Response) (err error) { + var logp = `SetHTTPResponse` rres.ResponseStatus = res.Status rres.ResponseStatusCode = res.StatusCode diff --git a/target.go b/target.go index a69ee37..31f76d8 100644 --- a/target.go +++ b/target.go @@ -9,10 +9,10 @@ import ( libhttp "github.com/shuLhan/share/lib/http" ) -// Target contains group of HttpTarget that can be tested by Trunks. +// Target contains group of HTTPTarget that can be tested by Trunks. type Target struct { - // HttpClient that can be used for running HttpTarget. - HttpClient *libhttp.Client `json:"-"` + // HTTPClient that can be used for running HTTPTarget. + HTTPClient *libhttp.Client `json:"-"` Opts *AttackOptions Vars KeyFormInput @@ -20,14 +20,14 @@ type Target struct { ID string Name string - // BaseUrl contains the target address that serve the service to + // BaseURL contains the target address that serve the service to // be tested. // This field is required. - BaseUrl string + BaseURL string Hint string - HttpTargets []*HttpTarget + HTTPTargets []*HTTPTarget WebSocketTargets []*WebSocketTarget } @@ -35,8 +35,8 @@ func (target *Target) init() (err error) { if len(target.Name) == 0 { return fmt.Errorf("Target.Name is empty") } - if len(target.BaseUrl) == 0 { - return fmt.Errorf("Target.BaseUrl is not defined") + if len(target.BaseURL) == 0 { + return fmt.Errorf("Target.BaseURL is not defined") } target.ID = generateID(target.Name) @@ -51,13 +51,16 @@ func (target *Target) init() (err error) { target.Vars = KeyFormInput{} } - for _, ht := range target.HttpTargets { + var ht *HTTPTarget + for _, ht = range target.HTTPTargets { err = ht.init() if err != nil { return fmt.Errorf("Target.init %s: %w", target.Name, err) } } - for _, wst := range target.WebSocketTargets { + + var wst *WebSocketTarget + for _, wst = range target.WebSocketTargets { err = wst.init() if err != nil { return fmt.Errorf("Target.init %s: %w", target.Name, err) @@ -67,8 +70,8 @@ func (target *Target) init() (err error) { return nil } -func (target *Target) getHttpTargetByID(id string) *HttpTarget { - for _, ht := range target.HttpTargets { +func (target *Target) getHTTPTarget(id string) *HTTPTarget { + for _, ht := range target.HTTPTargets { if ht.ID == id { return ht } diff --git a/trunks.go b/trunks.go index 9d47808..b90df42 100644 --- a/trunks.go +++ b/trunks.go @@ -40,12 +40,6 @@ const ( paramNameName = "name" ) -// List of HTTP APIs. -const ( - pathApiAttackHttp = `/_trunks/api/attack/http` - pathApiAttackResult = `/_trunks/api/attack/result` -) - // Trunks is the HTTP server with web user interface and APIs for running and // load testing the registered HTTP endpoints. type Trunks struct { @@ -79,7 +73,7 @@ func New(env *Environment) (trunks *Trunks, err error) { errq: make(chan error, 1), } - err = trunks.initHttpServer(isDevelopment) + err = trunks.initHTTPServer(isDevelopment) if err != nil { return nil, fmt.Errorf("%s: %w", logp, err) } @@ -87,31 +81,31 @@ func New(env *Environment) (trunks *Trunks, err error) { return trunks, nil } -// AttackHttp start attacking the HTTP target defined in req. -func (trunks *Trunks) AttackHttp(req *RunRequest) (err error) { - logp := "AttackHttp" +// AttackHTTP start attacking the HTTP target defined in req. +func (trunks *Trunks) AttackHTTP(req *RunRequest) (err error) { + var logp = `AttackHTTP` if trunks.Env.isAttackRunning() { return errAttackConflict(trunks.Env.getRunningAttack()) } - origTarget := trunks.getTargetByID(req.Target.ID) + var origTarget = trunks.getTargetByID(req.Target.ID) if origTarget == nil { return errInvalidTarget(req.Target.ID) } - origHttpTarget := origTarget.getHttpTargetByID(req.HttpTarget.ID) + var origHTTPTarget = origTarget.getHTTPTarget(req.HTTPTarget.ID) if origTarget == nil { - return errInvalidHttpTarget(req.HttpTarget.ID) + return errInvalidHTTPTarget(req.HTTPTarget.ID) } - if !origHttpTarget.AllowAttack { + if !origHTTPTarget.AllowAttack { return errAttackNotAllowed() } - if origHttpTarget.Attack == nil { + if origHTTPTarget.Attack == nil { return fmt.Errorf(`%s: %w`, logp, &errAttackHandlerNotSet) } - req = generateRunRequest(trunks.Env, req, origTarget, origHttpTarget) + req = generateRunRequest(trunks.Env, req, origTarget, origHTTPTarget) req.result, err = newAttackResult(trunks.Env, req) if err != nil { @@ -121,7 +115,7 @@ func (trunks *Trunks) AttackHttp(req *RunRequest) (err error) { trunks.attackq <- req msg := fmt.Sprintf("Attacking %s%s with %d RPS for %s seconds", - req.Target.BaseUrl, req.HttpTarget.Path, + req.Target.BaseURL, req.HTTPTarget.Path, req.Target.Opts.RatePerSecond, req.Target.Opts.Duration) mlog.Outf(`%s: %s`, logp, msg) @@ -129,9 +123,9 @@ func (trunks *Trunks) AttackHttp(req *RunRequest) (err error) { return nil } -// AttackHttpCancel cancel any running attack. +// AttackHTTPCancel cancel any running attack. // It will return an error if no attack is running. -func (trunks *Trunks) AttackHttpCancel() (rr *RunRequest, err error) { +func (trunks *Trunks) AttackHTTPCancel() (rr *RunRequest, err error) { rr = trunks.Env.getRunningAttack() if rr == nil { e := &liberrors.E{ @@ -179,27 +173,27 @@ func (trunks *Trunks) RegisterTarget(target *Target) (err error) { return nil } -// RunHttp send the HTTP request to the HTTP target defined in RunRequest with +// RunHTTP send the HTTP request to the HTTP target defined in RunRequest with // optional Headers and Parameters. -func (trunks *Trunks) RunHttp(req *RunRequest) (res *RunResponse, err error) { - origTarget := trunks.getTargetByID(req.Target.ID) +func (trunks *Trunks) RunHTTP(req *RunRequest) (res *RunResponse, err error) { + var origTarget = trunks.getTargetByID(req.Target.ID) if origTarget == nil { return nil, errInvalidTarget(req.Target.ID) } - origHttpTarget := origTarget.getHttpTargetByID(req.HttpTarget.ID) - if origHttpTarget == nil { - return nil, errInvalidHttpTarget(req.HttpTarget.ID) + var origHTTPTarget = origTarget.getHTTPTarget(req.HTTPTarget.ID) + if origHTTPTarget == nil { + return nil, errInvalidHTTPTarget(req.HTTPTarget.ID) } - if origHttpTarget.Run == nil { - req.Target.BaseUrl = origTarget.BaseUrl + if origHTTPTarget.Run == nil { + req.Target.BaseURL = origTarget.BaseURL req.Target.Name = origTarget.Name - req.HttpTarget.ConvertParams = origHttpTarget.ConvertParams + req.HTTPTarget.ConvertParams = origHTTPTarget.ConvertParams res, err = trunks.runHTTPTarget(req) } else { - req = generateRunRequest(trunks.Env, req, origTarget, origHttpTarget) - res, err = req.HttpTarget.Run(req) + req = generateRunRequest(trunks.Env, req, origTarget, origHTTPTarget) + res, err = req.HTTPTarget.Run(req) } if err != nil { return nil, err @@ -248,13 +242,17 @@ func (trunks *Trunks) Stop() { trunks.errq <- nil } -func (trunks *Trunks) addHttpAttackResult(rr *RunRequest) (ok bool) { - for _, target := range trunks.targets { +func (trunks *Trunks) addHTTPAttackResult(rr *RunRequest) (ok bool) { + var ( + target *Target + httpTarget *HTTPTarget + ) + for _, target = range trunks.targets { if target.ID != rr.Target.ID { continue } - for _, httpTarget := range target.HttpTargets { - if httpTarget.ID != rr.HttpTarget.ID { + for _, httpTarget = range target.HTTPTargets { + if httpTarget.ID != rr.HTTPTarget.ID { continue } @@ -284,7 +282,7 @@ func (trunks *Trunks) getTargetByID(id string) *Target { return nil } -func (trunks *Trunks) getAttackResultByName(name string) (t *Target, ht *HttpTarget, result *AttackResult, err error) { +func (trunks *Trunks) getAttackResultByName(name string) (t *Target, ht *HTTPTarget, result *AttackResult, err error) { res := &libhttp.EndpointResponse{ E: liberrors.E{ Code: http.StatusNotFound, @@ -298,7 +296,7 @@ func (trunks *Trunks) getAttackResultByName(name string) (t *Target, ht *HttpTar return nil, nil, nil, res } if ht == nil { - res.Message = "HttpTarget ID not found" + res.Message = `HTTPTarget ID not found` return nil, nil, nil, res } @@ -311,7 +309,7 @@ func (trunks *Trunks) getAttackResultByName(name string) (t *Target, ht *HttpTar return t, ht, result, nil } -func (trunks *Trunks) getTargetByResultFilename(name string) (t *Target, ht *HttpTarget) { +func (trunks *Trunks) getTargetByResultFilename(name string) (t *Target, ht *HTTPTarget) { names := strings.Split(name, ".") t = trunks.getTargetByID(names[0]) @@ -320,41 +318,41 @@ func (trunks *Trunks) getTargetByResultFilename(name string) (t *Target, ht *Htt } if len(names) > 0 { - ht = t.getHttpTargetByID(names[1]) + ht = t.getHTTPTarget(names[1]) } return t, ht } -// runHTTPTarget default [HttpTarget.Run] handler that generate HTTP request +// runHTTPTarget default [HTTPTarget.Run] handler that generate HTTP request // and send it to the target. func (trunks *Trunks) runHTTPTarget(rr *RunRequest) (res *RunResponse, err error) { var ( logp = `runHTTPTarget` - headers = rr.HttpTarget.Headers.ToHttpHeader() + headers = rr.HTTPTarget.Headers.ToHTTPHeader() params interface{} ) httpcOpts := &libhttp.ClientOptions{ - ServerUrl: rr.Target.BaseUrl, + ServerUrl: rr.Target.BaseURL, AllowInsecure: true, } httpc := libhttp.NewClient(httpcOpts) - rr.HttpTarget.paramsToPath() + rr.HTTPTarget.paramsToPath() - if rr.HttpTarget.ConvertParams == nil { - switch rr.HttpTarget.RequestType { + if rr.HTTPTarget.ConvertParams == nil { + switch rr.HTTPTarget.RequestType { case libhttp.RequestTypeJSON: - params = rr.HttpTarget.Params.ToJsonObject() + params = rr.HTTPTarget.Params.ToJSONObject() case libhttp.RequestTypeMultipartForm: - params = rr.HttpTarget.Params.ToMultipartFormData() + params = rr.HTTPTarget.Params.ToMultipartFormData() default: - params = rr.HttpTarget.Params.ToUrlValues() + params = rr.HTTPTarget.Params.ToURLValues() } } else { - params, err = rr.HttpTarget.ConvertParams(&rr.HttpTarget) + params, err = rr.HTTPTarget.ConvertParams(&rr.HTTPTarget) if err != nil { return nil, fmt.Errorf(`%s: %w`, logp, err) } @@ -363,9 +361,9 @@ func (trunks *Trunks) runHTTPTarget(rr *RunRequest) (res *RunResponse, err error res = &RunResponse{} httpRequest, err := httpc.GenerateHttpRequest( - rr.HttpTarget.Method, - rr.HttpTarget.Path, - rr.HttpTarget.RequestType, + rr.HTTPTarget.Method, + rr.HTTPTarget.Path, + rr.HTTPTarget.RequestType, headers, params, ) @@ -373,7 +371,7 @@ func (trunks *Trunks) runHTTPTarget(rr *RunRequest) (res *RunResponse, err error return nil, fmt.Errorf("%s: %w", logp, err) } - err = res.SetHttpRequest(httpRequest) + err = res.SetHTTPRequest(httpRequest) if err != nil { return nil, fmt.Errorf("%s: %w", logp, err) } @@ -383,7 +381,7 @@ func (trunks *Trunks) runHTTPTarget(rr *RunRequest) (res *RunResponse, err error return nil, fmt.Errorf("%s: %w", logp, err) } - err = res.SetHttpResponse(httpResponse) + err = res.SetHTTPResponse(httpResponse) if err != nil { return nil, fmt.Errorf("%s: %w", logp, err) } @@ -428,7 +426,7 @@ func (trunks *Trunks) scanResultsDir() { continue } if ht == nil { - mlog.Outf(`--- %s %d/%d: HttpTarget ID not found for %q`, logp, x+1, len(fis), name) + mlog.Outf(`--- %s %d/%d: HTTPTarget ID not found for %q`, logp, x+1, len(fis), name) continue } @@ -439,8 +437,12 @@ func (trunks *Trunks) scanResultsDir() { mlog.Outf(`--- %s: all pass results has been loaded ...`, logp) - for _, target := range trunks.targets { - for _, httpTarget := range target.HttpTargets { + var ( + target *Target + httpTarget *HTTPTarget + ) + for _, target = range trunks.targets { + for _, httpTarget = range target.HTTPTargets { httpTarget.sortResults() } } @@ -453,8 +455,8 @@ func (trunks *Trunks) workerAttackQueue() { var err error trunks.Env.AttackRunning = rr - if rr.HttpTarget.PreAttack != nil { - rr.HttpTarget.PreAttack(rr) + if rr.HTTPTarget.PreAttack != nil { + rr.HTTPTarget.PreAttack(rr) } isCancelled := false @@ -463,10 +465,10 @@ func (trunks *Trunks) workerAttackQueue() { ) for res := range attacker.Attack( - rr.HttpTarget.Attack(rr), + rr.HTTPTarget.Attack(rr), rr.Target.Opts.ratePerSecond, rr.Target.Opts.Duration, - rr.HttpTarget.ID, + rr.HTTPTarget.ID, ) { err = rr.result.add(res) if err != nil { @@ -500,7 +502,7 @@ func (trunks *Trunks) workerAttackQueue() { mlog.Errf(`%s %s: %s`, logp, rr.result.Name, err) } - trunks.addHttpAttackResult(rr) + trunks.addHTTPAttackResult(rr) mlog.Outf(`%s: %s finished.`, logp, rr.result.Name) } -- cgit v1.3