diff --git a/.gitea/workflows/dev.yaml b/.gitea/workflows/dev.yaml index aea2832..234e596 100644 --- a/.gitea/workflows/dev.yaml +++ b/.gitea/workflows/dev.yaml @@ -59,12 +59,18 @@ jobs: - name: Configure docker auth for Artifact Registry run: gcloud auth configure-docker us-central1-docker.pkg.dev --quiet - - name: Get elc (pre-built linux/amd64) + - name: Get elc (pre-built linux/amd64 from El repo) run: | set -euo pipefail - curl -fL -o "$EL_HOME/dist/platform/elc" \ - https://git.neuralplatform.ai/neuron-technologies/el/releases/download/v1.2.1/elc-linux-amd64 - chmod +x "$EL_HOME/dist/platform/elc" + ELC_SRC="$EL_HOME/dist/platform/elc-linux-amd64" + if [ -f "$ELC_SRC" ]; then + cp "$ELC_SRC" "$EL_HOME/dist/platform/elc" + chmod +x "$EL_HOME/dist/platform/elc" + else + curl -fL -o "$EL_HOME/dist/platform/elc" \ + https://git.neuralplatform.ai/neuron-technologies/el/releases/download/v1.2.1/elc-linux-amd64 + chmod +x "$EL_HOME/dist/platform/elc" + fi - name: Compute image tag id: tag @@ -77,8 +83,6 @@ jobs: run: touch src/index.html src/about.html src/terms.html src/enterprise-terms.html - name: Build image (local only — no push) - env: - EXTRACT_JS: '1' run: ./build-stage.sh "${{ steps.tag.outputs.tag }}" - name: Local smoke test diff --git a/.gitea/workflows/stage.yaml b/.gitea/workflows/stage.yaml index fa4ee84..46246b6 100644 --- a/.gitea/workflows/stage.yaml +++ b/.gitea/workflows/stage.yaml @@ -93,13 +93,23 @@ jobs: - name: Configure docker auth for Artifact Registry run: gcloud auth configure-docker us-central1-docker.pkg.dev --quiet - - name: Get elc (pre-built linux/amd64) + - name: Get elc (pre-built linux/amd64 from El repo) if: steps.changetype.outputs.asset_only != 'true' run: | set -euo pipefail - curl -fL -o "$EL_HOME/dist/platform/elc" \ - https://git.neuralplatform.ai/neuron-technologies/el/releases/download/v1.2.1/elc-linux-amd64 - chmod +x "$EL_HOME/dist/platform/elc" + # Copy the El C-compiler binary from the cloned El repo into the expected path. + # The JS-capable elc for client-side compilation is committed in bin/elc-linux-amd64 + # and used automatically by build-stage.sh on linux/amd64. + ELC_SRC="$EL_HOME/dist/platform/elc-linux-amd64" + if [ -f "$ELC_SRC" ]; then + cp "$ELC_SRC" "$EL_HOME/dist/platform/elc" + chmod +x "$EL_HOME/dist/platform/elc" + else + # Fallback: download v1.2.1 C-compiler if the repo binary is absent + curl -fL -o "$EL_HOME/dist/platform/elc" \ + https://git.neuralplatform.ai/neuron-technologies/el/releases/download/v1.2.1/elc-linux-amd64 + chmod +x "$EL_HOME/dist/platform/elc" + fi - name: Compute image tag id: tag @@ -118,8 +128,6 @@ jobs: - name: Build image (build-stage.sh) if: steps.changetype.outputs.asset_only != 'true' - env: - EXTRACT_JS: '1' run: | ./build-stage.sh "${{ steps.tag.outputs.tag }}" docker tag "marketing:${{ steps.tag.outputs.tag }}" "${{ steps.tag.outputs.image }}" diff --git a/.gitignore b/.gitignore index 7faf6ac..e6223f4 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,16 @@ src/about.html src/terms.html src/enterprise-terms.html +# Compiled client-side JS (generated by elc --target=js at build time). +# The El sources live in src/js/; the compiled output is never committed. +dist/js/ + +# El JS runtime staged temporarily during build (auto-cleaned by build-stage.sh). +src/js/el_runtime.js + +# Old extracted JS assets (replaced by elc-compiled dist/js/). +src/assets/js/ + # Track hand-written source under dist/ that is NOT generated by elc. # These are the C stub shims and entry scripts the Dockerfile.stage COPYs # into the image; without these the build cannot produce a working diff --git a/Dockerfile.stage b/Dockerfile.stage index 76682a2..176c0da 100644 --- a/Dockerfile.stage +++ b/Dockerfile.stage @@ -62,7 +62,7 @@ RUN apt-get update \ ca-certificates \ && rm -rf /var/lib/apt/lists/* \ && groupadd -r landing && useradd -r -g landing landing \ - && mkdir -p /srv/landing/assets /srv/landing/shares \ + && mkdir -p /srv/landing/assets /srv/landing/js /srv/landing/shares \ && mkdir -p /srv/soul/engram-demo \ && chown -R landing:landing /srv/landing /srv/soul @@ -73,6 +73,7 @@ COPY --from=builder /build/soul-demo /usr/local/bin/soul-demo COPY dist/engram-snapshot.json /srv/soul/engram-demo/snapshot.json COPY src/assets /srv/landing/assets +COPY dist/js /srv/landing/js COPY src/llms.txt /srv/landing/llms.txt # Pre-rendered HTML shells (about, terms, enterprise-terms, index) used as # fallback when the El page-builder hasn't been seeded yet at startup. diff --git a/bin/elc-linux-amd64 b/bin/elc-linux-amd64 new file mode 100755 index 0000000..b2efc54 Binary files /dev/null and b/bin/elc-linux-amd64 differ diff --git a/build-stage.sh b/build-stage.sh index 0a3ce1e..c22f76e 100755 --- a/build-stage.sh +++ b/build-stage.sh @@ -4,23 +4,22 @@ # # Pipeline: # 1. Stage the foundation El runtime into ./runtime/. -# 2. Concatenate src/*.el into dist/main-combined.el (component-first, +# 2. Compile client-side El sources (src/js/*.el) to dist/js/*.js using +# the JS-capable elc binary at bin/elc-linux-amd64 (CI) or the local +# elc (dev). Output is gitignored and rebuilt every run. +# 3. Concatenate src/*.el into dist/main-combined.el (component-first, # main.el last; matches the historical order from build-local.sh). -# 3. Compile dist/main-combined.el → dist/main.c using the canonical +# 4. Compile dist/main-combined.el → dist/main.c using the canonical # native elc at foundation/el/dist/platform/elc. -# 4. Inject the host-side stub forward declarations into dist/main.c +# 5. Inject the host-side stub forward declarations into dist/main.c # (sed header rewrite, same set as the prior in-Dockerfile sed). -# 5. docker buildx build --platform linux/amd64 -f Dockerfile.stage. +# 6. docker buildx build --platform linux/amd64 -f Dockerfile.stage. # # bootstrap.py is no longer in the build path. The container image now # expects dist/main.c to be a finished C source — it just runs cc on it. # -# Inline-JS extraction is gated by EXTRACT_JS=1 just like build-local.sh -# was. Production deploys should always extract. -# # Usage: # ./build-stage.sh — build marketing: -# EXTRACT_JS=1 ./build-stage.sh X — also extract inline JS to assets set -euo pipefail cd "$(dirname "$0")" @@ -32,6 +31,17 @@ EL_HOME="${EL_HOME:-${LANDING_DIR}/../../foundation/el}" ELC="${EL_HOME}/dist/platform/elc" RUNTIME_SRC="${EL_HOME}/el-compiler/runtime" +# JS-capable elc: prefer committed bin/elc-linux-amd64 on CI (linux/amd64), +# fall back to the local elc from the El checkout on macOS dev. +if [ -f "${LANDING_DIR}/bin/elc-linux-amd64" ] && uname -m | grep -q x86_64; then + ELC_JS="${LANDING_DIR}/bin/elc-linux-amd64" +elif [ -x "${ELC}" ]; then + ELC_JS="${ELC}" +else + echo "elc for JS compilation not found — expected bin/elc-linux-amd64 or ${ELC}" >&2 + exit 1 +fi + if [ ! -x "${ELC}" ]; then echo "elc not found at ${ELC}" >&2 exit 1 @@ -42,17 +52,20 @@ mkdir -p runtime dist cp "${RUNTIME_SRC}/el_runtime.c" runtime/ cp "${RUNTIME_SRC}/el_runtime.h" runtime/ -# Optional inline-JS extraction. Off by default for fast dev iteration; the -# script is idempotent so flipping the flag on a prior tree just reuses -# previously-extracted assets. -if [[ "${EXTRACT_JS:-0}" == "1" ]]; then - echo "==> Extracting inline JS → src/assets/js/" - if [ ! -x "node_modules/.bin/terser" ] || [ ! -x "node_modules/.bin/javascript-obfuscator" ]; then - echo " installing terser + javascript-obfuscator (no-save)..." - npm install --no-save --silent terser javascript-obfuscator - fi - python3 scripts/extract-js.py -fi +# The JS compiler looks for el_runtime.js in the same directory as the +# source file being compiled. Copy it there so --bundle can inline it. +cp "${RUNTIME_SRC}/el_runtime.js" "${LANDING_DIR}/src/js/" + +echo "==> Compiling client-side El (src/js/*.el) → dist/js/" +mkdir -p dist/js +for f in "${LANDING_DIR}/src/js/"*.el; do + name=$(basename "$f" .el) + "${ELC_JS}" --target=js --bundle --minify --obfuscate "$f" > "${LANDING_DIR}/dist/js/${name}.js" + echo " compiled: src/js/${name}.el → dist/js/${name}.js" +done + +# Clean up the staged runtime (not a source file) +rm -f "${LANDING_DIR}/src/js/el_runtime.js" echo "==> Combining El sources → dist/main-combined.el" COMPONENTS=(nav hero pillars how_it_works inference efficiency comparison diff --git a/scripts/extract-js.py b/scripts/extract-js.py deleted file mode 100644 index 4a8e9e2..0000000 --- a/scripts/extract-js.py +++ /dev/null @@ -1,465 +0,0 @@ -#!/usr/bin/env python3 -""" -extract-js.py — Extract inline `, and writes a manifest -for cache-busting. - -Behaviour ---------- -- Skips `` - immediately before the external script tag, and rewrites the JS body - to read from `window.NEURON_CFG.` so the external file is fully - static and runtime values are still injected at render time. -- Pipeline per file: terser (compress + mangle, reserved globals - preserved) → javascript-obfuscator (string-array, base64, hex names). - -Idempotency ------------ -- Running twice is a no-op: blocks already rewritten to - ` -# i.e. quotes are written as \". We unescape on the way out, re-escape on -# the way in. - -# We match a *plain* opening . -# Cases we deliberately don't match: -# - (external loader) -# - (external loader, even with body) -# - (structured data) -SCRIPT_BLOCK_RE = re.compile( - r"", - re.DOTALL, -) - -# An interpolation point inside a JS body: `'" + ident + "'` (single-quoted -# string in JS containing an El concat). We capture the bare identifier. -INTERP_RE = re.compile(r"""'"\s*\+\s*([a-zA-Z_][a-zA-Z0-9_]*)\s*\+\s*"'""") - - -def is_skip_block(body: str) -> bool: - """True if the block is too small or non-JS to be worth extracting.""" - stripped = body.strip() - if len(stripped) < MIN_INLINE_BYTES: - return True - return False - - -def el_unescape(s: str) -> str: - r"""Mirror the El lexer's string-escape rules (foundation/el/bootstrap.py): - - \n -> LF, \t -> TAB, \r -> CR, \" -> ", \\ -> \, \ -> X for any X. - - The catch-all means \' inside an El string yields a bare apostrophe; - if we don't replicate that here, an extracted block like - `onclick=\"window.location.href=\\\'/contact\\\'\"` parses with stray - backslashes that terser then rejects as bad escape sequences.""" - out = [] - i = 0 - n = len(s) - while i < n: - c = s[i] - if c == "\\" and i + 1 < n: - nxt = s[i + 1] - if nxt == "n": - out.append("\n") - elif nxt == "t": - out.append("\t") - elif nxt == "r": - out.append("\r") - elif nxt == '"': - out.append('"') - elif nxt == "\\": - out.append("\\") - else: - # Catch-all: unrecognised escape collapses to the second char, - # exactly as the El lexer does. - out.append(nxt) - i += 2 - continue - out.append(c) - i += 1 - return "".join(out) - - -def el_escape_attr(s: str) -> str: - """Escape a string for use inside an El "..." literal. We only need to - escape the double quote — backslash is already legal in URLs and we - don't emit any.""" - return s.replace("\\", "\\\\").replace('"', '\\"') - - -def sha12(content: str) -> str: - return hashlib.sha1(content.encode("utf-8")).hexdigest()[:12] - - -def run(cmd: List[str], **kwargs) -> subprocess.CompletedProcess: - proc = subprocess.run(cmd, check=False, capture_output=True, text=True, **kwargs) - if proc.returncode != 0: - sys.stderr.write( - f"\n[extract-js] command failed: {' '.join(cmd[:2])} ...\n" - f" exit={proc.returncode}\n" - f" stdout: {proc.stdout[:500]}\n" - f" stderr: {proc.stderr[:2000]}\n" - ) - raise subprocess.CalledProcessError( - proc.returncode, cmd, proc.stdout, proc.stderr - ) - return proc - - -def minify_and_obfuscate(js: str, hash_id: str) -> str: - """Run js through terser then javascript-obfuscator. Returns the final - obfuscated source.""" - raw_path = ASSET_DIR / f".{hash_id}.raw.js" - min_path = ASSET_DIR / f".{hash_id}.min.js" - out_path = ASSET_DIR / f"{hash_id}.js" - - def _cleanup_scratch() -> None: - raw_path.unlink(missing_ok=True) - min_path.unlink(missing_ok=True) - - raw_path.write_text(js, encoding="utf-8") - - reserved_arg = ",".join(RESERVED_GLOBALS) - - # terser - terser_cmd = TERSER.split() + [ - str(raw_path), - "--compress", - "passes=2,drop_console=true,drop_debugger=true", - "--mangle", - f"reserved=[{reserved_arg}]", - "--output", - str(min_path), - ] - try: - run(terser_cmd) - except Exception: - _cleanup_scratch() - raise - - # javascript-obfuscator - obf_cmd = OBFUSCATOR.split() + [ - str(min_path), - "--output", - str(out_path), - "--compact", - "true", - "--simplify", - "true", - "--string-array", - "true", - "--string-array-encoding", - "base64", - "--string-array-threshold", - "0.75", - "--identifier-names-generator", - "hexadecimal", - "--rename-globals", - "false", - "--self-defending", - "false", - "--reserved-names", - ",".join(RESERVED_GLOBALS), - ] - try: - run(obf_cmd) - except Exception: - _cleanup_scratch() - raise - - # Tidy up scratch files; keep only the final .js - _cleanup_scratch() - - return out_path.read_text(encoding="utf-8") - - -def find_script_blocks(text: str) -> List[tuple[int, int, str]]: - """Return (start, end, body) for every plain block. - `start`/`end` are file offsets covering the entire match (the tags - too).""" - out: List[tuple[int, int, str]] = [] - for m in SCRIPT_BLOCK_RE.finditer(text): - out.append((m.start(), m.end(), m.group(1))) - return out - - -def process_block(raw_body_escaped: str) -> Optional[tuple[str, str, List[str]]]: - """Process a single " - ) - parts.append(shim) - - # External script tag, defer so it runs after parse but before - # DOMContentLoaded — that's compatible with `onclick=` handlers - # because they only fire on user interaction (post-load). - parts.append( - f'' - ) - - return hash_id, "".join(parts), seen - - -EXISTING_REF_RE = re.compile( - r'' -) - - -def collect_existing_refs(text: str) -> List[str]: - """Find /assets/js/.js references already inlined into this El - file from a previous run. Returns hash IDs in document order.""" - return [m.group(1) for m in EXISTING_REF_RE.finditer(text)] - - -def process_file(path: Path) -> tuple[int, int, List[dict]]: - """Rewrite a single .el file, replacing extractable - - + + " diff --git a/src/assets/js/02ecc8cf6542.js b/src/assets/js/02ecc8cf6542.js deleted file mode 100644 index f728b36..0000000 --- a/src/assets/js/02ecc8cf6542.js +++ /dev/null @@ -1 +0,0 @@ -(function(_0x5a3a59,_0x123947){var _0x4e969b=a0_0x1803,_0xa3384d=_0x5a3a59();while(!![]){try{var _0x27d3d1=-parseInt(_0x4e969b(0x1c4))/0x1*(parseInt(_0x4e969b(0x18f))/0x2)+parseInt(_0x4e969b(0x1fe))/0x3*(parseInt(_0x4e969b(0x1a0))/0x4)+parseInt(_0x4e969b(0x1c3))/0x5*(parseInt(_0x4e969b(0x1f7))/0x6)+-parseInt(_0x4e969b(0x1ec))/0x7*(parseInt(_0x4e969b(0x1a1))/0x8)+-parseInt(_0x4e969b(0x1bb))/0x9*(parseInt(_0x4e969b(0x1f9))/0xa)+-parseInt(_0x4e969b(0x19a))/0xb+parseInt(_0x4e969b(0x209))/0xc;if(_0x27d3d1===_0x123947)break;else _0xa3384d['push'](_0xa3384d['shift']());}catch(_0x17b9b9){_0xa3384d['push'](_0xa3384d['shift']());}}}(a0_0x4e6a,0x190d5),!(function(){var _0x173ab6=a0_0x1803;'undefined'!=typeof marked&&marked[_0x173ab6(0x1c7)]({'breaks':!0x0,'gfm':!0x0});var _0xbff377='',_0x3fa458=null,_0x3b354a=!0x1,_0x469936=!0x1,_0x25b6cf=0xa,_0x15af8c=null;function _0x114980(){var _0x17649f=_0x173ab6,_0x45f711=document['getElementById'](_0x17649f(0x1af));_0x45f711&&(_0x45f711['style']['display']=_0x17649f(0x1df));var _0x4057d0=document['getElementById'](_0x17649f(0x1e2));_0x4057d0&&(_0x4057d0[_0x17649f(0x1b5)]=''),_0x15af8c=null;}async function _0x3787d0(){var _0x322c4b=_0x173ab6;if(_0x15af8c){var _0x58b9eb=_0x15af8c,_0x2ff5d5=document[_0x322c4b(0x18b)](_0x322c4b(0x1c9));_0x2ff5d5&&(_0x2ff5d5['disabled']=!0x0,_0x2ff5d5[_0x322c4b(0x1a6)]=_0x322c4b(0x1db)),_0x58b9eb['btn']&&(_0x58b9eb['btn'][_0x322c4b(0x1fd)]['opacity']=_0x322c4b(0x19d));try{var _0x5cd750=await fetch(_0x322c4b(0x1e8),{'method':_0x322c4b(0x197),'headers':{'Content-Type':'application/json'},'body':JSON[_0x322c4b(0x186)]({'question':_0x58b9eb['question'],'answer':_0x58b9eb[_0x322c4b(0x19e)],'answer_html':_0x58b9eb[_0x322c4b(0x1e4)],'answer_plaintext':_0x58b9eb[_0x322c4b(0x19e)]})}),_0x3eea6c=await _0x5cd750[_0x322c4b(0x1d5)]();_0x3eea6c&&_0x3eea6c['id']&&window[_0x322c4b(0x1ed)]('/share/'+_0x3eea6c['id'],'_blank');}catch(_0x18c083){}_0x58b9eb[_0x322c4b(0x1b1)]&&(_0x58b9eb[_0x322c4b(0x1b1)][_0x322c4b(0x1fd)]['opacity']='1'),_0x2ff5d5&&(_0x2ff5d5[_0x322c4b(0x208)]=!0x1,_0x2ff5d5[_0x322c4b(0x1a6)]=_0x322c4b(0x1dd)),_0x114980();}}function _0x962548(){var _0x52e69e=_0x173ab6,_0x35eabb=document['getElementById'](_0x52e69e(0x1c9)),_0x4e38f5=document[_0x52e69e(0x18b)](_0x52e69e(0x1f3)),_0x419225=document['getElementById']('neuron-share-preview-close'),_0x476630=document['getElementById']('neuron-share-preview-modal');_0x35eabb&&_0x35eabb[_0x52e69e(0x1e7)](_0x52e69e(0x178),_0x3787d0),_0x4e38f5&&_0x4e38f5[_0x52e69e(0x1e7)](_0x52e69e(0x178),_0x114980),_0x419225&&_0x419225[_0x52e69e(0x1e7)](_0x52e69e(0x178),_0x114980),_0x476630&&_0x476630[_0x52e69e(0x1e7)](_0x52e69e(0x178),function(_0x32a496){var _0x14e71b=_0x52e69e;_0x32a496[_0x14e71b(0x1e0)]===_0x476630&&_0x114980();});}function _0x4d89a5(_0x3a18ca){var _0x4b5a1f=_0x173ab6;try{localStorage['setItem']('neuron_demo_session',JSON[_0x4b5a1f(0x186)](_0x3a18ca));}catch(_0x2bb06b){}}if('loading'===document[_0x173ab6(0x1c0)]?document[_0x173ab6(0x1e7)]('DOMContentLoaded',_0x962548):_0x962548(),-0x1!==window[_0x173ab6(0x204)][_0x173ab6(0x17a)][_0x173ab6(0x1f2)](_0x173ab6(0x1fa))){!(function(){var _0x11eb5a=_0x173ab6;try{localStorage[_0x11eb5a(0x1e3)](_0x11eb5a(0x20f));}catch(_0x113deb){}}());var _0x1728be=window['location'][_0x173ab6(0x1ce)];window[_0x173ab6(0x1a4)][_0x173ab6(0x181)]({},'',_0x1728be);}var _0x33e6ac=(function(){var _0x3b3fe0=_0x173ab6;try{var _0x48339=localStorage['getItem'](_0x3b3fe0(0x20f));return _0x48339?JSON[_0x3b3fe0(0x1bd)](_0x48339):{'messages':[],'count':0x0,'context':''};}catch(_0x20cfe5){return{'messages':[],'count':0x0,'context':''};}}());_0x33e6ac[_0x173ab6(0x1be)]||(_0x33e6ac['uid']='u'+Date[_0x173ab6(0x1c8)]()['toString'](0x24)+Math['random']()[_0x173ab6(0x20e)](0x24)['slice'](0x2,0x7),_0x4d89a5(_0x33e6ac));var _0x34a790=_0x33e6ac[_0x173ab6(0x180)]||0x0;function _0x5bd446(){var _0x3a712b=_0x173ab6,_0x5da04e=document[_0x3a712b(0x18b)](_0x3a712b(0x1a3));if(_0x5da04e){var _0x1671a0=_0x25b6cf-_0x34a790;_0x5da04e[_0x3a712b(0x1a6)]=_0x1671a0+_0x3a712b(0x1e5)+(0x1===_0x1671a0?'':'s')+_0x3a712b(0x17b),_0x5da04e[_0x3a712b(0x1fd)][_0x3a712b(0x17e)]=_0x3a712b(0x18a),_0x5da04e[_0x3a712b(0x1fd)][_0x3a712b(0x179)]=_0x3a712b(0x182);}}function _0x5e99f8(_0x49ca99,_0x36f1b5,_0x1154c3){var _0x5d97db=_0x173ab6,_0x15006e=document[_0x5d97db(0x18b)](_0x5d97db(0x1f4));if(!_0x15006e)return null;var _0x2370bb=document[_0x5d97db(0x19c)]('div');_0x2370bb[_0x5d97db(0x1a8)]=_0x5d97db(0x1b0)+_0x49ca99;var _0x2ac646=document[_0x5d97db(0x19c)]('div');if(_0x2ac646['className']=_0x5d97db(0x1d8),'ai'===_0x49ca99){var _0x37b1d4=document[_0x5d97db(0x19c)](_0x5d97db(0x17f));_0x37b1d4['src']=_0x5d97db(0x177),_0x37b1d4[_0x5d97db(0x1ba)]=_0x5d97db(0x188),_0x2ac646[_0x5d97db(0x1d4)](_0x37b1d4);}else{var _0x44968b=_0x5d97db(0x1d0),_0x1f0b79=document[_0x5d97db(0x1b4)](_0x44968b,'svg');_0x1f0b79[_0x5d97db(0x205)](_0x5d97db(0x1f1),'14'),_0x1f0b79[_0x5d97db(0x205)](_0x5d97db(0x214),'14'),_0x1f0b79[_0x5d97db(0x205)]('viewBox',_0x5d97db(0x1fc)),_0x1f0b79['setAttribute'](_0x5d97db(0x200),'none'),_0x1f0b79[_0x5d97db(0x205)](_0x5d97db(0x1a9),_0x5d97db(0x1d7)),_0x1f0b79[_0x5d97db(0x205)](_0x5d97db(0x18e),'2');var _0x5b2851=document[_0x5d97db(0x1b4)](_0x44968b,_0x5d97db(0x1d6));_0x5b2851[_0x5d97db(0x205)]('d',_0x5d97db(0x19f));var _0x13137c=document[_0x5d97db(0x1b4)](_0x44968b,_0x5d97db(0x1cc));_0x13137c['setAttribute']('cx','12'),_0x13137c[_0x5d97db(0x205)]('cy','7'),_0x13137c[_0x5d97db(0x205)]('r','4'),_0x1f0b79[_0x5d97db(0x1d4)](_0x5b2851),_0x1f0b79[_0x5d97db(0x1d4)](_0x13137c),_0x2ac646[_0x5d97db(0x1d4)](_0x1f0b79);}var _0x1cbeb1=document['createElement'](_0x5d97db(0x1e9));if(_0x1cbeb1[_0x5d97db(0x1a8)]='demo-msg-bubble','ai'===_0x49ca99&&_0x5d97db(0x1ae)!=typeof marked)try{_0x1cbeb1['innerHTML']=marked[_0x5d97db(0x1bd)](_0x36f1b5);}catch(_0x261512){_0x1cbeb1[_0x5d97db(0x1a6)]=_0x36f1b5;}else _0x1cbeb1[_0x5d97db(0x1a6)]=_0x36f1b5;if('ai'===_0x49ca99){var _0x5a50e1=document[_0x5d97db(0x19c)](_0x5d97db(0x1e9));if(_0x5a50e1['className']=_0x5d97db(0x1d1),_0x5a50e1[_0x5d97db(0x1d4)](_0x1cbeb1),!_0x1154c3){var _0x8a2ec6=document['createElement'](_0x5d97db(0x1d3));_0x8a2ec6[_0x5d97db(0x1a8)]=_0x5d97db(0x1ac),_0x8a2ec6[_0x5d97db(0x193)]=_0x5d97db(0x184),_0x8a2ec6[_0x5d97db(0x1a6)]=_0x5d97db(0x187),_0x8a2ec6[_0x5d97db(0x17d)]=function(){var _0x165673=_0x5d97db,_0x31be8e='';if(_0x33e6ac['messages']){for(var _0x137799=_0x33e6ac[_0x165673(0x1f8)][_0x165673(0x1b2)]-0x1;_0x137799>=0x0;_0x137799--)if(_0x165673(0x185)===_0x33e6ac[_0x165673(0x1f8)][_0x137799]['role']){_0x31be8e=_0x33e6ac['messages'][_0x137799][_0x165673(0x1a5)];break;}}!function(_0x2b611b,_0x1e95b3,_0x1c8503,_0x1083fa){var _0x523b03=_0x165673;_0x15af8c={'question':_0x2b611b,'answerHtml':_0x1e95b3,'answerPlain':_0x1c8503,'btn':_0x1083fa};var _0x524463=document['getElementById'](_0x523b03(0x1af)),_0x412f3f=document['getElementById'](_0x523b03(0x1e2));_0x524463&&_0x412f3f&&(_0x412f3f[_0x523b03(0x1b5)]=function(_0x20376e,_0x4a68ea){var _0x4a1b05=_0x523b03;return''+(_0x58fc02=_0x20376e||_0x4a1b05(0x1bf),String(null==_0x58fc02?'':_0x58fc02)[_0x4a1b05(0x203)](/&/g,_0x4a1b05(0x199))[_0x4a1b05(0x203)](//g,'>')[_0x4a1b05(0x203)](/"/g,_0x4a1b05(0x1c6))+_0x4a1b05(0x1b3))+(_0x4a68ea||'')+_0x4a1b05(0x198);var _0x58fc02;}(_0x2b611b,_0x1e95b3),_0x524463[_0x523b03(0x1fd)][_0x523b03(0x195)]=_0x523b03(0x20a));}(_0x31be8e,_0x1cbeb1[_0x165673(0x1ea)],_0x36f1b5,_0x8a2ec6);},_0x5a50e1[_0x5d97db(0x1d4)](_0x8a2ec6);}_0x2370bb['appendChild'](_0x2ac646),_0x2370bb[_0x5d97db(0x1d4)](_0x5a50e1);}else _0x2370bb[_0x5d97db(0x1d4)](_0x2ac646),_0x2370bb[_0x5d97db(0x1d4)](_0x1cbeb1);return _0x15006e[_0x5d97db(0x1d4)](_0x2370bb),_0x15006e[_0x5d97db(0x1bc)]=_0x15006e[_0x5d97db(0x1cd)],_0x1154c3||_0x5d97db(0x1c1)===_0x49ca99||(_0x33e6ac[_0x5d97db(0x1f8)]=_0x33e6ac[_0x5d97db(0x1f8)]||[],_0x33e6ac['messages'][_0x5d97db(0x207)]({'role':_0x49ca99,'text':_0x36f1b5}),_0x33e6ac[_0x5d97db(0x1f8)]['length']>0xc8&&(_0x33e6ac[_0x5d97db(0x1f8)]=_0x33e6ac[_0x5d97db(0x1f8)][_0x5d97db(0x1a2)](-0xc8)),_0x4d89a5(_0x33e6ac)),_0x2370bb;}window[_0x173ab6(0x1f0)]=function(){var _0x52993a=_0x173ab6;try{localStorage[_0x52993a(0x1e3)](_0x52993a(0x20f));}catch(_0x54b40a){}_0x33e6ac={'messages':[],'count':0x0,'context':''},_0x34a790=0x0;var _0xbb8bf6=document[_0x52993a(0x18b)](_0x52993a(0x1f4));_0xbb8bf6&&(_0xbb8bf6[_0x52993a(0x1ea)]='');var _0x250a43=document['getElementById'](_0x52993a(0x183));_0x250a43&&(_0x250a43[_0x52993a(0x208)]=!0x1,_0x250a43['placeholder']=_0x52993a(0x1b8));var _0x49de9c=document[_0x52993a(0x18b)](_0x52993a(0x206));_0x49de9c&&(_0x49de9c[_0x52993a(0x208)]=!0x1),_0x5e99f8('ai','Hey.\x20What\x20is\x20on\x20your\x20mind?',!0x0);},window[_0x173ab6(0x1aa)]=function(){var _0x54bba7=_0x173ab6;_0x469936=!_0x469936;var _0x2dd42c=document[_0x54bba7(0x18b)]('neuron-demo-panel');_0x2dd42c&&(_0x2dd42c['style'][_0x54bba7(0x195)]=_0x469936?_0x54bba7(0x20a):_0x54bba7(0x1df));var _0x187f3e=document[_0x54bba7(0x18b)](_0x54bba7(0x1ff));_0x187f3e&&(_0x187f3e[_0x54bba7(0x1fd)][_0x54bba7(0x195)]=_0x469936?_0x54bba7(0x1df):'');var _0x504fcd=document['getElementById'](_0x54bba7(0x1f4));if(_0x469936&&_0x3b354a&&_0x504fcd&&_0x54bba7(0x1df)!==_0x504fcd[_0x54bba7(0x1fd)]['display']&&0x0===_0x504fcd[_0x54bba7(0x216)]['length']){if(_0x33e6ac[_0x54bba7(0x1f8)]&&_0x33e6ac[_0x54bba7(0x1f8)][_0x54bba7(0x1b2)]>0x0)_0x33e6ac['messages']['forEach'](function(_0x5cb5c2){var _0x3dead7=_0x54bba7;_0x5e99f8(_0x5cb5c2[_0x3dead7(0x194)],_0x5cb5c2['text'],!0x0);}),_0x25b6cf-_0x34a790<=0x0&&(_0x3975bc=document[_0x54bba7(0x18b)](_0x54bba7(0x183)))&&(_0x3975bc[_0x54bba7(0x208)]=!0x0,_0x3975bc[_0x54bba7(0x211)]=_0x54bba7(0x1b6));else{if(!_0x33e6ac[_0x54bba7(0x191)]){_0x5e99f8('ai','Hey.\x20What\x20is\x20on\x20your\x20mind?',!0x0),_0x33e6ac[_0x54bba7(0x191)]=!0x0;try{localStorage[_0x54bba7(0x1ca)]('neuron_demo_session',JSON[_0x54bba7(0x186)](_0x33e6ac));}catch(_0x41e8c0){}}}}var _0x3975bc=document['getElementById'](_0x54bba7(0x183));if(_0x469936&&_0x3975bc&&!_0x3975bc['disabled']&&_0x3975bc[_0x54bba7(0x1dc)](),_0x5bd446(),_0x469936&&!_0x3fa458&&_0x54bba7(0x1ae)!=typeof turnstile){var _0x1f712b=document['getElementById'](_0x54bba7(0x1c2));_0x1f712b&&(_0x3fa458=turnstile['render'](_0x1f712b,{'sitekey':'0x4AAAAAADHAZXyuRb3yD9mr','size':_0x54bba7(0x1a7),'callback':function(_0xcf3d72){var _0x2cda0a=_0x54bba7;if(_0xbff377=_0xcf3d72,_0x3b354a=!0x0,_0x2cda0a(0x1ae)!=typeof turnstile&&null!==_0x3fa458){try{turnstile['remove'](_0x3fa458);}catch(_0x32115a){}_0x3fa458=null;}var _0x3adeff=document[_0x2cda0a(0x18b)](_0x2cda0a(0x1cf)),_0x366efa=document[_0x2cda0a(0x18b)](_0x2cda0a(0x1f4)),_0x11ddf2=document[_0x2cda0a(0x18b)]('neuron-demo-input-row');if(_0x3adeff&&(_0x3adeff['style'][_0x2cda0a(0x195)]=_0x2cda0a(0x1df)),_0x366efa&&(_0x366efa[_0x2cda0a(0x1fd)]['display']=_0x2cda0a(0x20a)),_0x11ddf2&&(_0x11ddf2[_0x2cda0a(0x1fd)][_0x2cda0a(0x195)]=_0x2cda0a(0x20a)),_0x33e6ac[_0x2cda0a(0x1f8)]&&_0x33e6ac[_0x2cda0a(0x1f8)]['length']>0x0){if(_0x33e6ac['messages']['forEach'](function(_0x2be95e){var _0x382d19=_0x2cda0a;_0x5e99f8(_0x2be95e['role'],_0x2be95e[_0x382d19(0x1a5)],!0x0);}),_0x25b6cf-_0x34a790<=0x0){var _0x2d0761=document[_0x2cda0a(0x18b)]('neuron-demo-text');_0x2d0761&&(_0x2d0761[_0x2cda0a(0x208)]=!0x0,_0x2d0761[_0x2cda0a(0x211)]='Interaction\x20limit\x20reached');}}else{if(!_0x33e6ac[_0x2cda0a(0x191)]){_0x5e99f8('ai',_0x2cda0a(0x1ef),!0x0),_0x33e6ac[_0x2cda0a(0x191)]=!0x0;try{localStorage[_0x2cda0a(0x1ca)](_0x2cda0a(0x20f),JSON[_0x2cda0a(0x186)](_0x33e6ac));}catch(_0x3e86da){}}}_0x5bd446();var _0x3e8912=document[_0x2cda0a(0x18b)](_0x2cda0a(0x183));_0x3e8912&&_0x3e8912[_0x2cda0a(0x1dc)]();},'expired-callback':function(){_0xbff377='',_0x3b354a=!0x1;}}));}},window[_0x173ab6(0x20d)]=async function(){var _0x263fad=_0x173ab6;if(!(_0x34a790>=_0x25b6cf)){var _0x579e81=document[_0x263fad(0x18b)](_0x263fad(0x183)),_0x4fae29=document[_0x263fad(0x18b)]('neuron-demo-send');if(_0x579e81&&!_0x4fae29[_0x263fad(0x208)]&&(_0xca6525=_0x579e81[_0x263fad(0x212)][_0x263fad(0x1ee)]())){_0x579e81[_0x263fad(0x212)]='',_0x4fae29['disabled']=!0x0,_0x5e99f8(_0x263fad(0x185),_0xca6525);var _0x45a406=document[_0x263fad(0x19c)](_0x263fad(0x1e9));_0x45a406[_0x263fad(0x1a8)]=_0x263fad(0x20b);var _0x363bc9=document['createElement'](_0x263fad(0x1e9));_0x363bc9[_0x263fad(0x1a8)]=_0x263fad(0x1d8);var _0x406b69=document[_0x263fad(0x19c)](_0x263fad(0x17f));_0x406b69[_0x263fad(0x1e1)]=_0x263fad(0x177),_0x406b69[_0x263fad(0x1ba)]=_0x263fad(0x188),_0x363bc9[_0x263fad(0x1d4)](_0x406b69),_0x45a406['appendChild'](_0x363bc9);var _0x8abc73=document[_0x263fad(0x19c)](_0x263fad(0x18d));_0x8abc73[_0x263fad(0x1a8)]='demo-msg-thinking-dots',_0x8abc73[_0x263fad(0x1ea)]=_0x263fad(0x1e6),_0x45a406[_0x263fad(0x1d4)](_0x8abc73);var _0x5550f0=document[_0x263fad(0x18b)](_0x263fad(0x1f4));_0x5550f0&&(_0x5550f0[_0x263fad(0x1d4)](_0x45a406),_0x5550f0['scrollTop']=_0x5550f0[_0x263fad(0x1cd)]),_0x3b354a&&!_0x33e6ac[_0x263fad(0x1f5)]&&(_0x33e6ac[_0x263fad(0x1f5)]=!0x0);try{var _0x473759=(_0x33e6ac[_0x263fad(0x1f8)]||[])['slice'](-0x32)[_0x263fad(0x1ad)](function(_0x506a55){var _0x17e9f6=_0x263fad;return'thinking'!==_0x506a55[_0x17e9f6(0x194)];})[_0x263fad(0x1de)](function(_0x1c8000){var _0x1aaf95=_0x263fad;return{'role':'ai'===_0x1c8000['role']?_0x1aaf95(0x19b):_0x1aaf95(0x185),'content':_0x1c8000[_0x1aaf95(0x1a5)]};}),_0x29b250=function(_0xd65656,_0x19fbfb){var _0xbbfa33=_0x263fad;if(!_0xd65656||!_0xd65656['nodes']||!_0xd65656[_0xbbfa33(0x213)][_0xbbfa33(0x1b2)])return[];var _0x12f3af=_0x19fbfb[_0xbbfa33(0x1d2)]()[_0xbbfa33(0x1f6)](/s+/)[_0xbbfa33(0x1ad)](function(_0x568d48){var _0x5b5646=_0xbbfa33;return _0x568d48[_0x5b5646(0x1b2)]>0x3;}),_0x57a91c={};return _0xd65656['nodes'][_0xbbfa33(0x20c)](function(_0x1b4265){var _0x181b01=_0xbbfa33,_0x4ba873=(_0x1b4265['content']||'')[_0x181b01(0x1d2)]();_0x57a91c[_0x1b4265['id']]=0.6*_0x12f3af['filter'](function(_0x1478a8){var _0x34f72a=_0x181b01;return-0x1!==_0x4ba873[_0x34f72a(0x1f2)](_0x1478a8);})[_0x181b01(0x1b2)]+0.4*(_0x1b4265['w']||0.5);}),(_0xd65656[_0xbbfa33(0x196)]||[])[_0xbbfa33(0x20c)](function(_0x1e404c){var _0x5ccdad=_0xbbfa33;_0x57a91c[_0x1e404c[_0x5ccdad(0x201)]]>0.1&&(_0x57a91c[_0x1e404c['to']]=(_0x57a91c[_0x1e404c['to']]||0x0)+_0x57a91c[_0x1e404c['from']]*(_0x1e404c['weight']||0.5)*0.4);}),_0xd65656['nodes']['filter'](function(_0x3c3713){return _0x57a91c[_0x3c3713['id']]>0.2;})[_0xbbfa33(0x1cb)](function(_0x1b5e2a,_0x59986b){return _0x57a91c[_0x59986b['id']]-_0x57a91c[_0x1b5e2a['id']];})[_0xbbfa33(0x1a2)](0x0,0x5)[_0xbbfa33(0x1de)](function(_0x5cc58d){return{'id':_0x5cc58d['id'],'content':_0x5cc58d['content'],'score':_0x57a91c[_0x5cc58d['id']]};});}(_0x33e6ac['_m'],_0xca6525),_0x4584d6=_0x25b6cf-_0x34a790-0x1;_0x4584d6<0x0&&(_0x4584d6=0x0);var _0x61ed04,_0x543cb3=new AbortController(),_0x39f95d=setTimeout(function(){_0x543cb3['abort']();},0x7530);try{_0x61ed04=await fetch(_0x263fad(0x210),{'method':_0x263fad(0x197),'headers':{'Content-Type':_0x263fad(0x1d9)},'signal':_0x543cb3['signal'],'body':JSON['stringify']({'message':_0xca6525,'history':_0x473759,'cf_token':_0x3b354a&&!_0x33e6ac[_0x263fad(0x1f5)]?_0xbff377:'','uid':_0x33e6ac[_0x263fad(0x1be)]||'','activated_nodes':_0x29b250,'engram_node_count':_0x33e6ac['_m']&&_0x33e6ac['_m'][_0x263fad(0x213)]?_0x33e6ac['_m']['nodes'][_0x263fad(0x1b2)]:0x0,'questions_remaining':_0x4584d6,'is_last_question':0x0===_0x4584d6})});}finally{clearTimeout(_0x39f95d);}var _0x331034=await _0x61ed04['json']();_0x45a406&&_0x45a406['remove'](),function(_0x2feb0e,_0x20ed13,_0x30707c){var _0xa240dc=_0x263fad;if(_0x20ed13&&_0x20ed13[_0xa240dc(0x1b2)]){var _0x31d2d9=function(_0x3cc925){return _0x3cc925['_m']||{'nodes':[],'edges':[]};}(_0x2feb0e),_0x388f92={},_0x4d44f1=function(_0x5b1dd6){var _0x5bf302=_0xa240dc;return _0x5b1dd6[_0x5bf302(0x201)]+'->'+_0x5b1dd6['to'];},_0x4b139c={};_0x31d2d9['nodes']['forEach'](function(_0x4f287d){_0x388f92[_0x4f287d['id']]=_0x4f287d;}),(_0x20ed13||[])['forEach'](function(_0x8df6f){var _0x21c58d=_0xa240dc;_0x388f92[_0x8df6f['id']]?_0x388f92[_0x8df6f['id']]['w']=Math[_0x21c58d(0x17c)](0x1,(_0x388f92[_0x8df6f['id']]['w']||0.5)+0.08):_0x388f92[_0x8df6f['id']]=_0x8df6f;}),_0x31d2d9[_0xa240dc(0x213)]=Object[_0xa240dc(0x1da)](_0x388f92),_0x31d2d9[_0xa240dc(0x196)]['forEach'](function(_0x57cd8b){_0x4b139c[_0x4d44f1(_0x57cd8b)]=_0x57cd8b;}),(_0x30707c||[])[_0xa240dc(0x20c)](function(_0x524dfe){var _0x318012=_0xa240dc,_0x19229a=_0x4d44f1(_0x524dfe);_0x4b139c[_0x19229a]?_0x4b139c[_0x19229a][_0x318012(0x1fb)]=Math[_0x318012(0x17c)](0x1,(_0x4b139c[_0x19229a]['weight']||0.5)+0.05):_0x4b139c[_0x19229a]=_0x524dfe;}),_0x31d2d9[_0xa240dc(0x196)]=Object[_0xa240dc(0x1da)](_0x4b139c),_0x2feb0e['_m']=_0x31d2d9,_0x4d89a5(_0x2feb0e);}}(_0x33e6ac,_0x331034['sn'],_0x331034['se']);var _0x12d2c1=_0x331034['response']||_0x331034[_0x263fad(0x190)]||_0x331034['message']||'';!_0x12d2c1||_0x263fad(0x202)===_0x12d2c1||(_0x34a790++,_0x33e6ac[_0x263fad(0x180)]=_0x34a790,_0x4d89a5(_0x33e6ac),_0x5bd446(),_0x34a790>=_0x25b6cf&&_0x579e81&&(_0x579e81[_0x263fad(0x208)]=!0x0,_0x579e81[_0x263fad(0x211)]=_0x263fad(0x1b6))),_0x5e99f8('ai',_0x12d2c1||_0x263fad(0x202));}catch(_0x15b9b3){var _0xca6525;_0x45a406&&_0x45a406[_0x263fad(0x18c)](),_0x5e99f8('ai',_0xca6525=_0x15b9b3&&'AbortError'===_0x15b9b3[_0x263fad(0x192)]?_0x263fad(0x1b9):_0x263fad(0x202));}_0x34a790<_0x25b6cf&&_0x4fae29&&(_0x4fae29['disabled']=!0x1),_0x579e81&&_0x579e81[_0x263fad(0x1dc)]();}}};var _0x31ddae=document['getElementById'](_0x173ab6(0x183));_0x31ddae&&_0x31ddae[_0x173ab6(0x1e7)](_0x173ab6(0x215),function(_0x52fe85){var _0x5b4575=_0x173ab6;_0x5b4575(0x189)!==_0x52fe85[_0x5b4575(0x1eb)]||_0x52fe85[_0x5b4575(0x1ab)]||(_0x52fe85[_0x5b4575(0x1b7)](),window[_0x5b4575(0x20d)]());});}()));function a0_0x1803(_0xeb8bea,_0x2f2bde){_0xeb8bea=_0xeb8bea-0x177;var _0x4e6a48=a0_0x4e6a();var _0x180311=_0x4e6a48[_0xeb8bea];if(a0_0x1803['eDJryJ']===undefined){var _0x574354=function(_0x1804c9){var _0x2a2bdf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0xbff377='',_0x3fa458='';for(var _0x3b354a=0x0,_0x469936,_0x25b6cf,_0x15af8c=0x0;_0x25b6cf=_0x1804c9['charAt'](_0x15af8c++);~_0x25b6cf&&(_0x469936=_0x3b354a%0x4?_0x469936*0x40+_0x25b6cf:_0x25b6cf,_0x3b354a++%0x4)?_0xbff377+=String['fromCharCode'](0xff&_0x469936>>(-0x2*_0x3b354a&0x6)):0x0){_0x25b6cf=_0x2a2bdf['indexOf'](_0x25b6cf);}for(var _0x114980=0x0,_0x3787d0=_0xbff377['length'];_0x114980<_0x3787d0;_0x114980++){_0x3fa458+='%'+('00'+_0xbff377['charCodeAt'](_0x114980)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3fa458);};a0_0x1803['YvWEVV']=_0x574354,a0_0x1803['RErStb']={},a0_0x1803['eDJryJ']=!![];}var _0xd09fc5=_0x4e6a48[0x0],_0x2cf3a3=_0xeb8bea+_0xd09fc5,_0x20d60f=a0_0x1803['RErStb'][_0x2cf3a3];return!_0x20d60f?(_0x180311=a0_0x1803['YvWEVV'](_0x180311),a0_0x1803['RErStb'][_0x2cf3a3]=_0x180311):_0x180311=_0x20d60f,_0x180311;}function a0_0x4e6a(){var _0x204b81=['BMv1CM9UrgvTB1jLC2v0','D2LKDgG','Aw5KzxHpzG','BMv1CM9UlxnOyxjLlxbYzxzPzxCTy2fUy2vS','BMv1CM9UlwrLBw8TBwvZC2fNzxm','x2nMu2vUDa','C3bSAxq','mJK5odjLtMPbqvC','BwvZC2fNzxm','mtbTDxvjsuG','CMvZzxq9mq','D2vPz2H0','mcaWidi0idi0','C3r5Bgu','nde1mZvhzezUyxq','BMv1CM9UlwrLBw8TyNrU','zMLSBa','zNjVBq','u3rLChbLzcbVDxqGzM9YigeGBw9Tzw50lIbuCNKGywDHAw4U','CMvWBgfJzq','Bg9JyxrPB24','C2v0qxr0CMLIDxrL','BMv1CM9UlwrLBw8TC2vUza','ChvZAa','zgLZywjSzwq','nda3mtaXmKP5u1LHyG','zMXLEa','zgvTBY1TC2CGzgvTBY1TC2CTDgHPBMTPBMC','zM9YrwfJAa','BMv1CM9UrgvTB1nLBMq','Dg9tDhjPBMC','BMv1CM9Ux2rLBw9FC2vZC2LVBG','l2fWAs9Kzw1V','CgXHy2vOB2XKzxi','DMfSDwu','BM9Kzxm','AgvPz2H0','A2v5zg93BG','y2HPBgrYzw4','l2fZC2v0CY9ICMfUzc9UzxvYB24TyNjHAw4UCg5N','y2XPy2S','zM9UDfDLAwDODa','C2vHCMnO','igXLzNq','BwLU','B25JBgLJAW','y29SB3i','Aw1N','y291BNq','CMvWBgfJzvn0yxrL','nZaW','BMv1CM9UlwrLBw8TDgv4Da','u2HHCMuGDgHPCYbYzxnWB25Zzq','DxnLCG','C3rYAw5NAwz5','u2HHCMuG4OAx','tMv1CM9U','rw50zxi','i2zMzMzMzG','z2v0rwXLBwvUDej5swq','CMvTB3zL','C3bHBG','C3rYB2TLlxDPzhrO','mJbpuevMA1e','CMvWBhK','z3jLzxrLza','BMfTzq','DgL0Bgu','CM9Szq','zgLZCgXHEq','zwrNzxm','ue9tva','pc9KAxy+pc9KAxy+pc9KAxy+pc9KAxy+pc9IB2r5pJWVAhrTBd4','jMfTCdS','mtiXnZG3nLn4qwTkzW','yxnZAxn0yw50','y3jLyxrLrwXLBwvUDa','mc40','yw5ZD2vYugXHAw4','ttiWidiXDI0YytqGncaWidaGmc00ltrioge0idqGmcaWidaTnca0DJi','ntjgAwLMvLq','odm4mdbSueXPzwm','C2XPy2u','BMv1CM9UlwrLBw8Ty291BNrKB3DU','AgLZDg9YEq','Dgv4Da','Dgv4DenVBNrLBNq','y29TCgfJDa','y2XHC3noyw1L','C3rYB2TL','BMv1CM9UrgvTB1rVz2DSzq','C2HPzNrlzxK','zgvTBY1ZAgfYzs1WAwXS','zMLSDgvY','Dw5KzwzPBMvK','BMv1CM9UlxnOyxjLlxbYzxzPzxCTBw9KywW','zgvTBY1TC2CGzgvTBY1TC2CT','yNrU','BgvUz3rO','pc9KAxy+pc9KAxy+pgrPDIbJBgfZCZ0Iy2HHDc1YB3CTywKIpJXKAxyGy2XHC3m9iMf2yxrHCIi+tJWVzgL2pJXKAxyGy2XHC3m9iMfPlwnVBci+phnWyw4Gy2XHC3m9iMfPlwXHyMvSiJ5ozxvYB248l3nWyw4+pgrPDIbJBgfZCZ0IyNvIyMXLlwfPiJ4','y3jLyxrLrwXLBwvUDe5t','C3jJzg9J','sw50zxjHy3rPB24GBgLTAxqGCMvHy2HLza','ChjLDMvUDerLzMf1Bhq','qxnRig1LigfUExrOAw5NlI4U','vg9VAYb0B28GBg9UzYb0BYbYzxnWB25KiokaLcb0CNKGywDHAw4U','ywX0','odqYndCYsLPhzfL2','C2nYB2XSvg9W','CgfYC2u','DwLK','kg5VihbYAw9Yihf1zxn0Aw9Ukq','CMvHzhLtDgf0zq','DgHPBMTPBMC','BMv1CM9UlwrLBw8TDhvYBNn0AwXL','mtvrCvflC2m','ntK2owzrsfnKzG','jMX0oW','jNf1B3q7','C2v0t3b0Aw9UCW','BM93','BMv1CM9UlxnOyxjLlxbYzxzPzxCTChvIBgLZAa','C2v0sxrLBq','C29YDa','y2LYy2XL','C2nYB2XSsgvPz2H0','Cgf0Ag5HBwu','BMv1CM9UlwrLBw8Tz2f0zq','Ahr0CdOVl3D3DY53mY5VCMCVmJaWmc9ZDMC','zgvTBY1TC2CTywKTyM9KEq','Dg9mB3DLCKnHC2u','yNv0Dg9U','yxbWzw5Kq2HPBgq','ANnVBG','Cgf0Aa','y3vYCMvUDenVBg9Y','zgvTBY1TC2CTyxzHDgfY','yxbWBgLJyxrPB24VANnVBG','DMfSDwvZ','uhvIBgLZAgLUzY4UlG','zM9JDxm','uhvIBgLZAcb0BYbNywXSzxj5','BwfW','BM9Uzq','DgfYz2v0','C3jJ','BMv1CM9UlxnOyxjLlxbYzxzPzxCTzNjHBwu','CMvTB3zLsxrLBq','yw5ZD2vYshrTBa','ihf1zxn0Aw9U','phnWyw4+pc9ZCgfUpJXZCgfUpJWVC3bHBJ48C3bHBJ48l3nWyw4+','ywrKrxzLBNrmAxn0zw5LCG','l2fWAs9ZAgfYzq','zgL2','Aw5Uzxjive1m','A2v5','mteYy3bmsuH6','B3bLBG','DhjPBq','sgv5lIbxAgf0igLZig9UihLVDxiGBwLUzd8'];a0_0x4e6a=function(){return _0x204b81;};return a0_0x4e6a();} \ No newline at end of file diff --git a/src/assets/js/407e72cd7182.js b/src/assets/js/407e72cd7182.js deleted file mode 100644 index e6a5db4..0000000 --- a/src/assets/js/407e72cd7182.js +++ /dev/null @@ -1 +0,0 @@ -function a0_0x61e0(_0x4bb7ab,_0x5d89d9){_0x4bb7ab=_0x4bb7ab-0xf2;var _0x2a4141=a0_0x2a41();var _0x61e0f2=_0x2a4141[_0x4bb7ab];if(a0_0x61e0['pJJtai']===undefined){var _0x4bd07a=function(_0x2fd4d7){var _0x24c0be='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x4760a5='',_0x381a7d='';for(var _0x7c823c=0x0,_0x23e4d1,_0x2b14d6,_0x4213e8=0x0;_0x2b14d6=_0x2fd4d7['charAt'](_0x4213e8++);~_0x2b14d6&&(_0x23e4d1=_0x7c823c%0x4?_0x23e4d1*0x40+_0x2b14d6:_0x2b14d6,_0x7c823c++%0x4)?_0x4760a5+=String['fromCharCode'](0xff&_0x23e4d1>>(-0x2*_0x7c823c&0x6)):0x0){_0x2b14d6=_0x24c0be['indexOf'](_0x2b14d6);}for(var _0x3412c3=0x0,_0x68c2d7=_0x4760a5['length'];_0x3412c3<_0x68c2d7;_0x3412c3++){_0x381a7d+='%'+('00'+_0x4760a5['charCodeAt'](_0x3412c3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x381a7d);};a0_0x61e0['kCtMMJ']=_0x4bd07a,a0_0x61e0['AZuQZf']={},a0_0x61e0['pJJtai']=!![];}var _0x4d0420=_0x2a4141[0x0],_0x5aae91=_0x4bb7ab+_0x4d0420,_0x2c7864=a0_0x61e0['AZuQZf'][_0x5aae91];return!_0x2c7864?(_0x61e0f2=a0_0x61e0['kCtMMJ'](_0x61e0f2),a0_0x61e0['AZuQZf'][_0x5aae91]=_0x61e0f2):_0x61e0f2=_0x2c7864,_0x61e0f2;}(function(_0x54d610,_0x3dba9f){var _0x1b2fc7=a0_0x61e0,_0x2bbe6b=_0x54d610();while(!![]){try{var _0x2a526b=-parseInt(_0x1b2fc7(0x105))/0x1*(parseInt(_0x1b2fc7(0x124))/0x2)+parseInt(_0x1b2fc7(0x111))/0x3+parseInt(_0x1b2fc7(0xf4))/0x4+-parseInt(_0x1b2fc7(0x127))/0x5+parseInt(_0x1b2fc7(0x12c))/0x6*(parseInt(_0x1b2fc7(0x126))/0x7)+-parseInt(_0x1b2fc7(0x12b))/0x8*(parseInt(_0x1b2fc7(0x115))/0x9)+parseInt(_0x1b2fc7(0x130))/0xa;if(_0x2a526b===_0x3dba9f)break;else _0x2bbe6b['push'](_0x2bbe6b['shift']());}catch(_0x5f218f){_0x2bbe6b['push'](_0x2bbe6b['shift']());}}}(a0_0x2a41,0x82fa9),!(function(){'use strict';var _0x3af4f9=a0_0x61e0;var _0x4760a5=document['getElementById'](_0x3af4f9(0xfe));_0x4760a5&&window['addEventListener'](_0x3af4f9(0x12f),function(){var _0x4750b0=_0x3af4f9;window[_0x4750b0(0xfa)]>0x28?_0x4760a5[_0x4750b0(0x12e)]['add'](_0x4750b0(0x121)):_0x4760a5[_0x4750b0(0x12e)][_0x4750b0(0x119)]('scrolled');},{'passive':!0x0}),_0x3af4f9(0x12a)!=typeof URLSearchParams&&_0x3af4f9(0x11d)===new URLSearchParams(window[_0x3af4f9(0x107)][_0x3af4f9(0x117)])[_0x3af4f9(0x113)]('open')&&setTimeout(function(){'function'==typeof neuronDemoToggle&&neuronDemoToggle();},0x258);var _0x381a7d=document[_0x3af4f9(0xfb)](_0x3af4f9(0x128));if('IntersectionObserver'in window){var _0x7c823c=new IntersectionObserver(function(_0x68c2d7){var _0x127edf=_0x3af4f9;_0x68c2d7[_0x127edf(0x120)](function(_0x403508){var _0x244119=_0x127edf;_0x403508[_0x244119(0xf9)]&&(_0x403508[_0x244119(0x122)]['classList'][_0x244119(0x10a)](_0x244119(0x10e)),_0x7c823c['unobserve'](_0x403508[_0x244119(0x122)]));});},{'threshold':0.12,'rootMargin':_0x3af4f9(0x11a)});_0x381a7d['forEach'](function(_0x30dd7b){var _0x1558a2=_0x3af4f9;_0x7c823c[_0x1558a2(0x118)](_0x30dd7b);});}else _0x381a7d[_0x3af4f9(0x120)](function(_0x4be1e1){var _0x326af0=_0x3af4f9;_0x4be1e1['classList'][_0x326af0(0x10a)](_0x326af0(0x10e));});var _0x23e4d1=null;function _0x2b14d6(){var _0x5437d9=_0x3af4f9;fetch(_0x5437d9(0x10c))[_0x5437d9(0xfc)](function(_0xba5cbc){return _0xba5cbc['json']();})[_0x5437d9(0xfc)](function(_0x48f67c){!function(_0x1470ba){var _0x1aa9ce=a0_0x61e0,_0x51687c=_0x1470ba[_0x1aa9ce(0x109)],_0x16b82d=_0x1470ba['sold'],_0x174060=_0x1470ba[_0x1aa9ce(0xf3)],_0x6a4c98=Math[_0x1aa9ce(0x10d)](_0x16b82d/_0x174060*0x64),_0x5241b1=null!==_0x23e4d1&&_0x16b82d>_0x23e4d1;_0x23e4d1=_0x16b82d;var _0x5a6ac1=document[_0x1aa9ce(0x116)](_0x1aa9ce(0x11e));_0x5a6ac1&&(_0x5a6ac1['textContent']=_0x1aa9ce(0x100)+_0x51687c+_0x1aa9ce(0x125));var _0x4c1261=document[_0x1aa9ce(0x116)]('.founding-spots-fill');_0x4c1261&&(_0x4c1261['style'][_0x1aa9ce(0xfd)]=_0x6a4c98+'%');var _0x688aa2=document[_0x1aa9ce(0x116)]('.founding-spots-sub');_0x688aa2&&(_0x688aa2[_0x1aa9ce(0xf2)]=_0x16b82d+_0x1aa9ce(0xf8)+_0x174060+_0x1aa9ce(0xff));var _0x344b96=document[_0x1aa9ce(0x116)](_0x1aa9ce(0x11c));_0x344b96&&(_0x344b96[_0x1aa9ce(0xf2)]=_0x51687c,_0x5241b1&&(_0x344b96[_0x1aa9ce(0x129)][_0x1aa9ce(0xf6)]=_0x1aa9ce(0x10b),setTimeout(function(){var _0x197b64=_0x1aa9ce;_0x344b96[_0x197b64(0x129)][_0x197b64(0xf6)]='';},0x4b0)));var _0x59990c=document[_0x1aa9ce(0x116)](_0x1aa9ce(0x110));_0x59990c&&(_0x59990c[_0x1aa9ce(0x129)][_0x1aa9ce(0xfd)]=_0x6a4c98+'%');}(_0x48f67c);})[_0x5437d9(0x103)](function(){});}if(_0x2b14d6(),setInterval(_0x2b14d6,0x15f90),0x0===window['location'][_0x3af4f9(0x108)][_0x3af4f9(0xf7)](_0x3af4f9(0x106))||0x0===window['location'][_0x3af4f9(0x108)]['indexOf'](_0x3af4f9(0x102))||0x0===window[_0x3af4f9(0x107)][_0x3af4f9(0x108)][_0x3af4f9(0xf7)]('/legal')||0x0===window[_0x3af4f9(0x107)][_0x3af4f9(0x108)][_0x3af4f9(0xf7)]('/marketplace/success')){var _0x4213e8=document[_0x3af4f9(0x101)]('neuron-demo-btn'),_0x3412c3=document[_0x3af4f9(0x101)](_0x3af4f9(0x114));_0x4213e8&&(_0x4213e8[_0x3af4f9(0x129)][_0x3af4f9(0x10f)]=_0x3af4f9(0x123)),_0x3412c3&&(_0x3412c3[_0x3af4f9(0x129)][_0x3af4f9(0x10f)]=_0x3af4f9(0x123));}document[_0x3af4f9(0xfb)](_0x3af4f9(0xf5))[_0x3af4f9(0x120)](function(_0x32796f){var _0x4e3ba=_0x3af4f9;_0x32796f[_0x4e3ba(0x11b)](_0x4e3ba(0x12d),function(){var _0x431092=_0x4e3ba,_0x3031a7=_0x32796f[_0x431092(0x11f)](_0x431092(0x104));window[_0x431092(0x107)]['href']=_0x431092(0x112)+_0x3031a7;});});}()));function a0_0x2a41(){var _0x2cd3ac=['ndiZsvjts3nk','CxvLCNLtzwXLy3rVCG','C2vHCMnO','B2jZzxj2zq','CMvTB3zL','mhb4idbWEcaTndbWEcaWChG','ywrKrxzLBNrmAxn0zw5LCG','lMzVDw5KAw5NlwjHBM5LCI1JB3vUDa','y2HHDa','lMzVDw5KAw5NlxnWB3rZlwXHyMvS','z2v0qxr0CMLIDxrL','zM9YrwfJAa','C2nYB2XSzwq','DgfYz2v0','BM9Uzq','mtq2sxLNtMj1','igXLzNq','mtaXnwjrCKfnDG','mtyXnZu1zK9pEuzt','lNjLDMvHBa','C3r5Bgu','Dw5KzwzPBMvK','mtC2nZy4DfvVyuPo','mtq0nLryzxjeCq','y2XPy2S','y2XHC3nmAxn0','C2nYB2XS','ody3mZC1mer6EuLPzG','Dgv4DenVBNrLBNq','Dg90ywW','mZu4otiWuvfbqKPp','w2rHDgeTy2HLy2TVDxrD','y29SB3i','Aw5KzxHpzG','ig9Mia','AxnjBNrLCNnLy3rPBMC','C2nYB2XSwq','CxvLCNLtzwXLy3rVCKfSBa','DgHLBG','D2LKDgG','BMf2','ignSywLTzwq','t25SEsa','z2v0rwXLBwvUDej5swq','l2fJy291BNq','y2f0y2G','zgf0ys1JAgvJA291Da','ndyXofnkyK5nBq','l2nOzwnRB3v0','Bg9JyxrPB24','Cgf0Ag5HBwu','CMvTywLUAw5N','ywrK','iZaWnZHena','l2fWAs9MB3vUzgLUzY1JB3vUDa','CM91BMq','DMLZAwjSzq','zgLZCgXHEq','lMzVDw5KAw5NlwjHBM5LCI1MAwXS','mJG1nZi0oeHPC1Hwyq','l2nOzwnRB3v0p3bSyw49','z2v0','BMv1CM9UlwrLBw8TCgfUzwW'];a0_0x2a41=function(){return _0x2cd3ac;};return a0_0x2a41();} \ No newline at end of file diff --git a/src/assets/js/529d45d105c9.js b/src/assets/js/529d45d105c9.js deleted file mode 100644 index ad97ec5..0000000 --- a/src/assets/js/529d45d105c9.js +++ /dev/null @@ -1 +0,0 @@ -function a0_0x1591(){var _0x10c289=['BMf2lwHHBwj1CMDLCG','ywrK','C2v0qxr0CMLIDxrL','CxvLCNLtzwXLy3rVCKfSBa','zMfSC2u','ywrKrxzLBNrmAxn0zw5LCG','mJu4oduXn3rMq0LlsG','B3bLBG','CxvLCNLtzwXLy3rVCG','y2XPy2S','zM9YrwfJAa','yxjPys1LEhbHBMrLza','Dhj1zq','A2v5zg93BG','y2XHC3nmAxn0','Dg9Nz2XL','C3rVCfbYB3bHz2f0Aw9U','mtaXodi1ngX0EfLdDG','odi3nJvNA01dEwy','n05UrhjgAa','ndq2odmXrhrPu1bs','y29UDgfPBNm','lM5HDI1KCM9Wzg93BI1PDgvT','oe9gq1H5vW','ntmXmtCXmfbmCw9Krq','DgfYz2v0','ota5nJiYqujQBwvL','BMf2','mta0reHcyu1g','CMvTB3zL','mtiZnZmXngP2AejQuq','z2v0rwXLBwvUDej5swq','CMvZAxPL','A2v5'];a0_0x1591=function(){return _0x10c289;};return a0_0x1591();}function a0_0x1c65(_0xb184c1,_0x57ab9a){_0xb184c1=_0xb184c1-0x1d0;var _0x159170=a0_0x1591();var _0x1c65a5=_0x159170[_0xb184c1];if(a0_0x1c65['WtKexP']===undefined){var _0xe40532=function(_0x40a838){var _0x2d9cb5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x170067='',_0xe74606='';for(var _0x4a7359=0x0,_0x30df79,_0x3883ed,_0x6ecaab=0x0;_0x3883ed=_0x40a838['charAt'](_0x6ecaab++);~_0x3883ed&&(_0x30df79=_0x4a7359%0x4?_0x30df79*0x40+_0x3883ed:_0x3883ed,_0x4a7359++%0x4)?_0x170067+=String['fromCharCode'](0xff&_0x30df79>>(-0x2*_0x4a7359&0x6)):0x0){_0x3883ed=_0x2d9cb5['indexOf'](_0x3883ed);}for(var _0x907d2c=0x0,_0x3e504b=_0x170067['length'];_0x907d2c<_0x3e504b;_0x907d2c++){_0xe74606+='%'+('00'+_0x170067['charCodeAt'](_0x907d2c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xe74606);};a0_0x1c65['MwOGxL']=_0xe40532,a0_0x1c65['ZDZTWG']={},a0_0x1c65['WtKexP']=!![];}var _0x44174f=_0x159170[0x0],_0x518b15=_0xb184c1+_0x44174f,_0x173640=a0_0x1c65['ZDZTWG'][_0x518b15];return!_0x173640?(_0x1c65a5=a0_0x1c65['MwOGxL'](_0x1c65a5),a0_0x1c65['ZDZTWG'][_0x518b15]=_0x1c65a5):_0x1c65a5=_0x173640,_0x1c65a5;}(function(_0x37e014,_0x50cb04){var _0x44feb2=a0_0x1c65,_0x3735d2=_0x37e014();while(!![]){try{var _0x461de4=parseInt(_0x44feb2(0x1e5))/0x1+parseInt(_0x44feb2(0x1eb))/0x2+-parseInt(_0x44feb2(0x1ef))/0x3+parseInt(_0x44feb2(0x1ed))/0x4*(parseInt(_0x44feb2(0x1e3))/0x5)+parseInt(_0x44feb2(0x1e2))/0x6*(parseInt(_0x44feb2(0x1e4))/0x7)+parseInt(_0x44feb2(0x1e8))/0x8*(-parseInt(_0x44feb2(0x1d7))/0x9)+-parseInt(_0x44feb2(0x1e9))/0xa;if(_0x461de4===_0x50cb04)break;else _0x3735d2['push'](_0x3735d2['shift']());}catch(_0x5902f6){_0x3735d2['push'](_0x3735d2['shift']());}}}(a0_0x1591,0x420ab),!(function(){var _0x547ce7=a0_0x1c65,_0x170067=document['getElementById'](_0x547ce7(0x1d1)),_0xe74606=document[_0x547ce7(0x1f0)]('nav-mobile'),_0x4a7359=document[_0x547ce7(0x1f0)](_0x547ce7(0x1ec));if(_0x170067&&_0xe74606){_0x170067[_0x547ce7(0x1d6)](_0x547ce7(0x1da),function(_0x907d2c){var _0x153658=_0x547ce7;_0x907d2c[_0x153658(0x1e1)](),_0xe74606[_0x153658(0x1df)][_0x153658(0x1e6)](_0x153658(0x1d8))?_0x6ecaab():(_0xe74606[_0x153658(0x1df)][_0x153658(0x1d2)](_0x153658(0x1d8)),_0x170067[_0x153658(0x1d3)](_0x153658(0x1dc),_0x153658(0x1dd)));});var _0x30df79=document[_0x547ce7(0x1d9)]('.nav-dropdown-btn'),_0x3883ed=document[_0x547ce7(0x1d9)]('.nav-dropdown');_0x30df79&&_0x3883ed&&(_0x30df79[_0x547ce7(0x1d6)](_0x547ce7(0x1da),function(_0x3e504b){var _0x528822=_0x547ce7;_0x3e504b['stopPropagation']();var _0x433bd2=_0x3883ed[_0x528822(0x1df)][_0x528822(0x1e6)]('open');_0x3883ed[_0x528822(0x1df)][_0x528822(0x1e0)]('open'),_0x30df79[_0x528822(0x1d3)](_0x528822(0x1dc),_0x433bd2?_0x528822(0x1d5):'true');}),_0x3883ed[_0x547ce7(0x1d4)](_0x547ce7(0x1e7))[_0x547ce7(0x1db)](function(_0x1204a8){var _0xadfdec=_0x547ce7;_0x1204a8[_0xadfdec(0x1d6)](_0xadfdec(0x1da),function(){var _0x31eb07=_0xadfdec;_0x3883ed['classList'][_0x31eb07(0x1ee)](_0x31eb07(0x1d8));});}),document[_0x547ce7(0x1d6)](_0x547ce7(0x1da),function(){var _0x19709b=_0x547ce7;_0x3883ed[_0x19709b(0x1df)][_0x19709b(0x1ee)](_0x19709b(0x1d8));})),_0xe74606['querySelectorAll']('a')[_0x547ce7(0x1db)](function(_0x73922a){var _0x366c7c=_0x547ce7;_0x73922a[_0x366c7c(0x1d6)](_0x366c7c(0x1da),_0x6ecaab);}),document['addEventListener'](_0x547ce7(0x1da),function(_0x221bea){var _0xb6fe30=_0x547ce7;_0x4a7359[_0xb6fe30(0x1e6)](_0x221bea[_0xb6fe30(0x1ea)])||_0x6ecaab();}),document[_0x547ce7(0x1d6)](_0x547ce7(0x1de),function(_0x49f86d){var _0x168b84=_0x547ce7;'Escape'===_0x49f86d[_0x168b84(0x1d0)]&&_0x6ecaab();}),window['addEventListener'](_0x547ce7(0x1f1),function(){window['innerWidth']>0x424&&_0x6ecaab();});}function _0x6ecaab(){var _0x5b9266=_0x547ce7;_0xe74606[_0x5b9266(0x1df)][_0x5b9266(0x1ee)](_0x5b9266(0x1d8)),_0x170067[_0x5b9266(0x1d3)](_0x5b9266(0x1dc),'false');}}())); \ No newline at end of file diff --git a/src/assets/js/67c990f787eb.js b/src/assets/js/67c990f787eb.js deleted file mode 100644 index 43b55c2..0000000 --- a/src/assets/js/67c990f787eb.js +++ /dev/null @@ -1 +0,0 @@ -function a0_0x18f0(_0x130cb2,_0x4233e5){_0x130cb2=_0x130cb2-0xf4;var _0x1a46c4=a0_0x1a46();var _0x18f054=_0x1a46c4[_0x130cb2];if(a0_0x18f0['KpMsTb']===undefined){var _0x29f8b0=function(_0x2adce1){var _0x1a3e16='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x3e7ce9='',_0x38ac06='';for(var _0x2f94ba=0x0,_0x4825ab,_0x1ee868,_0x5675d5=0x0;_0x1ee868=_0x2adce1['charAt'](_0x5675d5++);~_0x1ee868&&(_0x4825ab=_0x2f94ba%0x4?_0x4825ab*0x40+_0x1ee868:_0x1ee868,_0x2f94ba++%0x4)?_0x3e7ce9+=String['fromCharCode'](0xff&_0x4825ab>>(-0x2*_0x2f94ba&0x6)):0x0){_0x1ee868=_0x1a3e16['indexOf'](_0x1ee868);}for(var _0x1d0311=0x0,_0x52fa72=_0x3e7ce9['length'];_0x1d0311<_0x52fa72;_0x1d0311++){_0x38ac06+='%'+('00'+_0x3e7ce9['charCodeAt'](_0x1d0311)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x38ac06);};a0_0x18f0['SXTgER']=_0x29f8b0,a0_0x18f0['VJVHuk']={},a0_0x18f0['KpMsTb']=!![];}var _0x2f7e0d=_0x1a46c4[0x0],_0x5b6520=_0x130cb2+_0x2f7e0d,_0x3ea5a1=a0_0x18f0['VJVHuk'][_0x5b6520];return!_0x3ea5a1?(_0x18f054=a0_0x18f0['SXTgER'](_0x18f054),a0_0x18f0['VJVHuk'][_0x5b6520]=_0x18f054):_0x18f054=_0x3ea5a1,_0x18f054;}function a0_0x1a46(){var _0x2dd6a7=['EwvZ','zw50sgvHzgnVDw50q2HHBMDL','zw50lwnVBxbHBNK','DhjPBq','zw50lwHLywrJB3vUDa','ue9tva','C2vJB25Kyxj5','zw50lw5HBwu','ugXLyxnLigzPBgWGB3v0igfSBcbMAwvSzhmU','mtaYmJm0CMrwBwje','DgHLBG','zw50lxvZzq','mc4Znq','Dgv4DenVBNrLBNq','ndmWt2XJv1D5','DMfSDwu','zw50lwzVCM0TzxjYB3i','BM9Uzq','u2vUzgLUz+kaPG','zw50lwzPBhrLCI1TC2CTEwvZ','zgLZCgXHEq','y2f0y2G','mtK5nZG0mK9KzuvnsW','B3bHy2L0Eq','y3vYC29Y','mJuWntaWnhnhDwvorG','C3vIBwL0','mte1mJCYodfwuxrgDeW','C3rYAw5NAwz5','zw50zxjWCMLZzs1ZDwnJzxnZ','yMXVy2S','BM90lwfSBg93zwq','ndGZnte2ohryCgDfrW','z2v0rwXLBwvUDej5swq','odqXmJjUEKrUy0G','C3r5Bgu','zgLZywjSzwq','nfPTv2Xtyq','ywrKrxzLBNrmAxn0zw5LCG','ntC2nMftz3nqwa'];a0_0x1a46=function(){return _0x2dd6a7;};return a0_0x1a46();}(function(_0x4568e6,_0xd88ea3){var _0x43ff8e=a0_0x18f0,_0x221e40=_0x4568e6();while(!![]){try{var _0x2a577d=-parseInt(_0x43ff8e(0x115))/0x1*(-parseInt(_0x43ff8e(0x118))/0x2)+-parseInt(_0x43ff8e(0xfc))/0x3+parseInt(_0x43ff8e(0x10c))/0x4+parseInt(_0x43ff8e(0x101))/0x5*(parseInt(_0x43ff8e(0x11a))/0x6)+parseInt(_0x43ff8e(0x109))/0x7+parseInt(_0x43ff8e(0x113))/0x8+-parseInt(_0x43ff8e(0x10e))/0x9;if(_0x2a577d===_0xd88ea3)break;else _0x221e40['push'](_0x221e40['shift']());}catch(_0x228e51){_0x221e40['push'](_0x221e40['shift']());}}}(a0_0x1a46,0x6e5d8),!(function(){var _0x4f3323=a0_0x18f0,_0x3e7ce9=document[_0x4f3323(0x114)]('enterprise-form'),_0x38ac06=document[_0x4f3323(0x114)]('ent-submit'),_0x2f94ba=document['getElementById'](_0x4f3323(0x110)),_0x4825ab=document[_0x4f3323(0x114)](_0x4f3323(0x103));_0x3e7ce9&&(window[_0x4f3323(0xf4)]=function(_0x1ee868){var _0x252663=_0x4f3323;document['getElementById']('ent-filter-msg-secondary')[_0x252663(0x116)]['display']=_0x252663(0xf9)===_0x1ee868?'block':_0x252663(0x104),document['getElementById'](_0x252663(0x106))[_0x252663(0x116)][_0x252663(0x107)]=_0x252663(0x11b)===_0x1ee868?'block':'none',_0x38ac06[_0x252663(0x117)]=_0x252663(0x11b)===_0x1ee868,_0x38ac06['style'][_0x252663(0x10a)]='yes'===_0x1ee868?_0x252663(0xff):'1',_0x38ac06[_0x252663(0x116)][_0x252663(0x10b)]=_0x252663(0x11b)===_0x1ee868?_0x252663(0x112):'pointer';},_0x3e7ce9[_0x4f3323(0x119)](_0x4f3323(0x10d),function(_0x5675d5){var _0x4d2035=_0x4f3323;_0x5675d5['preventDefault']();var _0x1d0311=document['getElementById'](_0x4d2035(0xf7))[_0x4d2035(0x102)];if(_0x4d2035(0x11b)!==_0x1d0311){var _0x52fa72=document[_0x4d2035(0x114)](_0x4d2035(0xfa))[_0x4d2035(0x102)][_0x4d2035(0xf6)](),_0x5838a3=document[_0x4d2035(0x114)]('ent-email')[_0x4d2035(0x102)][_0x4d2035(0xf6)](),_0x49346a=document[_0x4d2035(0x114)](_0x4d2035(0xf5))['value'][_0x4d2035(0xf6)](),_0xd0cede=document[_0x4d2035(0x114)]('ent-size')[_0x4d2035(0x102)],_0x74244e=document[_0x4d2035(0x114)](_0x4d2035(0xfe))[_0x4d2035(0x102)][_0x4d2035(0xf6)]();if(!(_0x52fa72&&_0x5838a3&&_0x49346a&&_0xd0cede&&_0x74244e&&_0x1d0311))return _0x4825ab[_0x4d2035(0x100)]=_0x4d2035(0xfb),void(_0x4825ab['style']['display']=_0x4d2035(0x111));_0x4825ab['style'][_0x4d2035(0x107)]=_0x4d2035(0x104),_0x38ac06['textContent']=_0x4d2035(0x105),_0x38ac06[_0x4d2035(0x117)]=!0x0,fetch('/api/enterprise-inquiry',{'method':_0x4d2035(0xf8),'headers':{'Content-Type':'application/json'},'body':JSON[_0x4d2035(0x10f)]({'name':_0x52fa72,'email':_0x5838a3,'company':_0x49346a,'size':_0xd0cede,'use_case':_0x74244e,'headcount':_0x1d0311})})[_0x4d2035(0xfd)](function(_0x5a2f55){return _0x5a2f55['json']();})[_0x4d2035(0xfd)](function(_0x52b3fa){var _0x165bfb=_0x4d2035;_0x3e7ce9[_0x165bfb(0x116)]['display']=_0x165bfb(0x104),_0x2f94ba[_0x165bfb(0x116)][_0x165bfb(0x107)]=_0x165bfb(0x111);})[_0x4d2035(0x108)](function(){var _0x30623e=_0x4d2035;_0x38ac06[_0x30623e(0x100)]='Send\x20inquiry\x20→',_0x38ac06[_0x30623e(0x117)]=!0x1,_0x4825ab['textContent']='Something\x20went\x20wrong.\x20Email\x20enterprise@neurontechnologies.ai\x20directly.',_0x4825ab[_0x30623e(0x116)][_0x30623e(0x107)]='block';});}else document['getElementById']('ent-filter-msg-yes')['style']['display']=_0x4d2035(0x111);}));}())); \ No newline at end of file diff --git a/src/assets/js/77e923ac5855.js b/src/assets/js/77e923ac5855.js deleted file mode 100644 index a7500fa..0000000 --- a/src/assets/js/77e923ac5855.js +++ /dev/null @@ -1 +0,0 @@ -function a0_0x51e7(){var _0x1cac5a=['C3r5Bgu','z2v0rwXLBwvUDej5swq','zgLZCgXHEq','nti4mfPIz29ICa','iZjfn0qZmG','mti3mdK3yvvryMnz','C2LNBKLUv2L0Ae90Ca','mtb5v2nLwM0','mtC5mte4u2PcENDt','ywnJDc1TywDPyY1IDg4','ywnJDc1LBwfPBc1PBNb1Da','Dgv4DenVBNrLBNq','mJe2oxnwCfDXCa','v2uGC2vUDcbHihnPz24TAw4GBgLUAYb0BYa','mZm2zwjOvM9t','mtm4mde2vwnTzLnr','C3vWywjHC2vFyw5VBL9RzxK','C2vUze1Hz2LJtgLUAW','DhjPBq','zxjYB3i','mteYnJrJs1H0wvq','lIbdAgvJAYb5B3vYigLUyM94lG','odG3mZfbwNnQAui','zgLZywjSzwq','C3vWywjHC2vFDxjS','mtbdq0D1whm','i0m2mJGYoa','u2vUzgLUzY4UlG','DMfSDwu','yMXVy2S','y29SB3i','q29UDgLUDwuGD2L0AcbLBwfPBa','ywnJDc1LBwfPBc1TC2C','yxv0Aa','mZeZodaXneHNzMTVsa','BwvZC2fNzq'];a0_0x51e7=function(){return _0x1cac5a;};return a0_0x51e7();}function a0_0x2a5f(_0x45cfd3,_0x395320){_0x45cfd3=_0x45cfd3-0x133;var _0x51e7da=a0_0x51e7();var _0x2a5f5c=_0x51e7da[_0x45cfd3];if(a0_0x2a5f['rcTSzs']===undefined){var _0x381a6b=function(_0x561f7e){var _0x41017d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x2fc9ad='',_0x2c977f='';for(var _0x351ea9=0x0,_0x1e2c71,_0x20f2d9,_0x1224d7=0x0;_0x20f2d9=_0x561f7e['charAt'](_0x1224d7++);~_0x20f2d9&&(_0x1e2c71=_0x351ea9%0x4?_0x1e2c71*0x40+_0x20f2d9:_0x20f2d9,_0x351ea9++%0x4)?_0x2fc9ad+=String['fromCharCode'](0xff&_0x1e2c71>>(-0x2*_0x351ea9&0x6)):0x0){_0x20f2d9=_0x41017d['indexOf'](_0x20f2d9);}for(var _0x4b14af=0x0,_0xfd0e24=_0x2fc9ad['length'];_0x4b14af<_0xfd0e24;_0x4b14af++){_0x2c977f+='%'+('00'+_0x2fc9ad['charCodeAt'](_0x4b14af)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2c977f);};a0_0x2a5f['oxJcrm']=_0x381a6b,a0_0x2a5f['QwkUCZ']={},a0_0x2a5f['rcTSzs']=!![];}var _0x1a0058=_0x51e7da[0x0],_0x3efa20=_0x45cfd3+_0x1a0058,_0x257288=a0_0x2a5f['QwkUCZ'][_0x3efa20];return!_0x257288?(_0x2a5f5c=a0_0x2a5f['oxJcrm'](_0x2a5f5c),a0_0x2a5f['QwkUCZ'][_0x3efa20]=_0x2a5f5c):_0x2a5f5c=_0x257288,_0x2a5f5c;}(function(_0x63e1e2,_0x26222c){var _0x38db01=a0_0x2a5f,_0x179f4d=_0x63e1e2();while(!![]){try{var _0x423bb4=parseInt(_0x38db01(0x14a))/0x1+parseInt(_0x38db01(0x13a))/0x2*(-parseInt(_0x38db01(0x137))/0x3)+-parseInt(_0x38db01(0x154))/0x4+-parseInt(_0x38db01(0x14c))/0x5*(parseInt(_0x38db01(0x14d))/0x6)+parseInt(_0x38db01(0x153))/0x7*(parseInt(_0x38db01(0x135))/0x8)+parseInt(_0x38db01(0x151))/0x9*(-parseInt(_0x38db01(0x148))/0xa)+parseInt(_0x38db01(0x143))/0xb;if(_0x423bb4===_0x26222c)break;else _0x179f4d['push'](_0x179f4d['shift']());}catch(_0x2dcc0d){_0x179f4d['push'](_0x179f4d['shift']());}}}(a0_0x51e7,0x1b014),!(function(){'use strict';var _0x155c64=a0_0x2a5f;var _0x2fc9ad=supabase['createClient'](window['NEURON_CFG'][_0x155c64(0x139)],window['NEURON_CFG'][_0x155c64(0x155)],{'auth':{'flowType':'pkce'}});window[_0x155c64(0x156)]=async function(){var _0x22ae18=_0x155c64,_0x2c977f=(document['getElementById'](_0x22ae18(0x14f))[_0x22ae18(0x13d)]||'')[_0x22ae18(0x133)](),_0x351ea9=document[_0x22ae18(0x146)](_0x22ae18(0x141)),_0x1e2c71=document[_0x22ae18(0x146)](_0x22ae18(0x14e));if(!_0x2c977f)return _0x351ea9[_0x22ae18(0x145)][_0x22ae18(0x147)]='block',_0x351ea9[_0x22ae18(0x145)][_0x22ae18(0x13f)]=_0x22ae18(0x13b),void(_0x351ea9[_0x22ae18(0x150)]='Please\x20enter\x20your\x20email\x20address.');_0x1e2c71&&(_0x1e2c71[_0x22ae18(0x138)]=!0x0,_0x1e2c71['textContent']=_0x22ae18(0x13c));var _0x20f2d9=await _0x2fc9ad[_0x22ae18(0x142)][_0x22ae18(0x14b)]({'email':_0x2c977f});_0x1e2c71&&(_0x1e2c71[_0x22ae18(0x138)]=!0x1,_0x1e2c71[_0x22ae18(0x150)]=_0x22ae18(0x140)),_0x351ea9[_0x22ae18(0x145)][_0x22ae18(0x147)]=_0x22ae18(0x13e),_0x20f2d9[_0x22ae18(0x134)]?(_0x351ea9['style']['color']=_0x22ae18(0x13b),_0x351ea9[_0x22ae18(0x150)]=_0x20f2d9[_0x22ae18(0x134)][_0x22ae18(0x144)]):(_0x351ea9[_0x22ae18(0x145)]['color']=_0x22ae18(0x149),_0x351ea9['textContent']=_0x22ae18(0x152)+_0x2c977f+_0x22ae18(0x136));};}())); \ No newline at end of file diff --git a/src/assets/js/7eac0621cbca.js b/src/assets/js/7eac0621cbca.js deleted file mode 100644 index 3de7c54..0000000 --- a/src/assets/js/7eac0621cbca.js +++ /dev/null @@ -1 +0,0 @@ -(function(_0x21c579,_0x5b4e35){var _0x102698=a0_0x4681,_0x15dd70=_0x21c579();while(!![]){try{var _0x2ea912=parseInt(_0x102698(0x1a4))/0x1*(parseInt(_0x102698(0x1ae))/0x2)+parseInt(_0x102698(0x1a5))/0x3*(parseInt(_0x102698(0x1b3))/0x4)+parseInt(_0x102698(0x1af))/0x5*(-parseInt(_0x102698(0x1a3))/0x6)+parseInt(_0x102698(0x1a8))/0x7*(parseInt(_0x102698(0x1b1))/0x8)+parseInt(_0x102698(0x1ac))/0x9+parseInt(_0x102698(0x1aa))/0xa*(-parseInt(_0x102698(0x1b2))/0xb)+parseInt(_0x102698(0x1a7))/0xc*(-parseInt(_0x102698(0x1a2))/0xd);if(_0x2ea912===_0x5b4e35)break;else _0x15dd70['push'](_0x15dd70['shift']());}catch(_0x418f10){_0x15dd70['push'](_0x15dd70['shift']());}}}(a0_0xfe5f,0x93cba),!(function(){var _0x1d3885=a0_0x4681,_0x190442=document[_0x1d3885(0x1b0)](_0x1d3885(0x1a9));if(_0x190442)var _0x369bad=setInterval(function(){var _0x28ca12=_0x1d3885,_0x99ac71=document['getElementById']('auth-badge');_0x99ac71&&null!==_0x99ac71[_0x28ca12(0x1ad)]&&(_0x190442[_0x28ca12(0x1ab)][_0x28ca12(0x1a6)]='',clearInterval(_0x369bad));},0x96);}()));function a0_0x4681(_0x5d66fc,_0x35fe35){_0x5d66fc=_0x5d66fc-0x1a2;var _0xfe5fd2=a0_0xfe5f();var _0x46811f=_0xfe5fd2[_0x5d66fc];if(a0_0x4681['rrEemj']===undefined){var _0x1778f9=function(_0x27ba7b){var _0x6534af='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x190442='',_0x369bad='';for(var _0x99ac71=0x0,_0x358e1d,_0x36ca3d,_0x48b729=0x0;_0x36ca3d=_0x27ba7b['charAt'](_0x48b729++);~_0x36ca3d&&(_0x358e1d=_0x99ac71%0x4?_0x358e1d*0x40+_0x36ca3d:_0x36ca3d,_0x99ac71++%0x4)?_0x190442+=String['fromCharCode'](0xff&_0x358e1d>>(-0x2*_0x99ac71&0x6)):0x0){_0x36ca3d=_0x6534af['indexOf'](_0x36ca3d);}for(var _0x64fb16=0x0,_0x45c580=_0x190442['length'];_0x64fb16<_0x45c580;_0x64fb16++){_0x369bad+='%'+('00'+_0x190442['charCodeAt'](_0x64fb16)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x369bad);};a0_0x4681['GaaaEr']=_0x1778f9,a0_0x4681['NVuxND']={},a0_0x4681['rrEemj']=!![];}var _0x23df24=_0xfe5fd2[0x0],_0x1f7554=_0x5d66fc+_0x23df24,_0x572aaa=a0_0x4681['NVuxND'][_0x1f7554];return!_0x572aaa?(_0x46811f=a0_0x4681['GaaaEr'](_0x46811f),a0_0x4681['NVuxND'][_0x1f7554]=_0x46811f):_0x46811f=_0x572aaa,_0x46811f;}function a0_0xfe5f(){var _0x383267=['nJaXmtfoA2LKzxm','otuZmJG5t1fPqNnJ','zgLZCgXHEq','mJrRqMLIEuy','mZKYntm2ovfHDffRrG','Cgf5BwvUDc1Zzwn0Aw9U','mteWote0mejoqMTpzG','C3r5Bgu','ndiWmtyZmNz5rLbgtq','B2zMC2v0ugfYzw50','nNfdqLPpCG','nJK0mez0t0n1sG','z2v0rwXLBwvUDej5swq','oePpwhLbyG','mtfLz29cvfq','ogHSzxnxCa','ndK3mdGXyujMzxjk','ndu0mKrUANrrDa'];a0_0xfe5f=function(){return _0x383267;};return a0_0xfe5f();} \ No newline at end of file diff --git a/src/assets/js/94727a87c328.js b/src/assets/js/94727a87c328.js deleted file mode 100644 index 60a0d2e..0000000 --- a/src/assets/js/94727a87c328.js +++ /dev/null @@ -1 +0,0 @@ -function a0_0x55ec(){var _0x1584e5=['DM90zs1KB3DU','q29WAwvKiokaLcbWyxn0zsbPBNrVifnUyxbJAgf0','DM90zwqTDxa','y2fYzf91CMW','BMv1CM9Ux3zVDgvK','odG5ndHbDLPNCeq','mJy5mZC3nxLLD2rdyq','y29WEuzVCLbSyxrMB3jT','y29WAwvK','l2fWAs92B3rL','ue9tva','ody3mZyWthfmBMfU','y2XHC3nmAxn0','C3zN','DM90zwqTzg93BG','mJGYodqWogndBujNDa','B25JBgLJAW','zg93BG','l2fWAs92B3rLlwnVDw50lW','DM90zs1Zy29Yzq','CgfYC2u','mJGZotneuu54tKK','mZiYmtGWqu5WDNDh','z2v0sxrLBq','ntrxs0TlCee','nda1nJy2ovrMuePLyW','y2XPCgjVyxjK','yxbWBgLJyxrPB24VANnVBG','vgLRvg9R','ntDuuMjpzfO','ChjVBxb0','CMvTB3zL','Dgv4DenVBNrLBNq','q29WAwvKiokaLcbWyxn0zsbPBNrVifrPA1rVAW','mJbJze92sMC','tKvvuK9ox0ngrW','ywrK','C2nVCMu','mJjotLfmsha','z2v0rwXLBwvUDej5swq','DgHLBG','q29WEsb0AgLZigXPBMS6','y2f0y2G'];a0_0x55ec=function(){return _0x1584e5;};return a0_0x55ec();}function a0_0x1413(_0x3cbc01,_0x3c531b){_0x3cbc01=_0x3cbc01-0x192;var _0x55ecef=a0_0x55ec();var _0x1413a9=_0x55ecef[_0x3cbc01];if(a0_0x1413['UUkJsO']===undefined){var _0x3b005d=function(_0x35b95c){var _0x3f41aa='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x52677b='',_0x1e995d='';for(var _0x312450=0x0,_0x5814c4,_0x1b9dc3,_0x3c1f6b=0x0;_0x1b9dc3=_0x35b95c['charAt'](_0x3c1f6b++);~_0x1b9dc3&&(_0x5814c4=_0x312450%0x4?_0x5814c4*0x40+_0x1b9dc3:_0x1b9dc3,_0x312450++%0x4)?_0x52677b+=String['fromCharCode'](0xff&_0x5814c4>>(-0x2*_0x312450&0x6)):0x0){_0x1b9dc3=_0x3f41aa['indexOf'](_0x1b9dc3);}for(var _0x230d66=0x0,_0x152250=_0x52677b['length'];_0x230d66<_0x152250;_0x230d66++){_0x1e995d+='%'+('00'+_0x52677b['charCodeAt'](_0x230d66)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1e995d);};a0_0x1413['pyxzaF']=_0x3b005d,a0_0x1413['ZHbHHf']={},a0_0x1413['UUkJsO']=!![];}var _0x462ef2=_0x55ecef[0x0],_0x1f418d=_0x3cbc01+_0x462ef2,_0x464a68=a0_0x1413['ZHbHHf'][_0x1f418d];return!_0x464a68?(_0x1413a9=a0_0x1413['pyxzaF'](_0x1413a9),a0_0x1413['ZHbHHf'][_0x1f418d]=_0x1413a9):_0x1413a9=_0x464a68,_0x1413a9;}(function(_0x2c5b22,_0xda6f90){var _0x186674=a0_0x1413,_0x3e59ee=_0x2c5b22();while(!![]){try{var _0x29812e=parseInt(_0x186674(0x1b4))/0x1*(-parseInt(_0x186674(0x19a))/0x2)+-parseInt(_0x186674(0x1bc))/0x3*(parseInt(_0x186674(0x1a4))/0x4)+parseInt(_0x186674(0x1b5))/0x5*(parseInt(_0x186674(0x1b7))/0x6)+-parseInt(_0x186674(0x1a5))/0x7+-parseInt(_0x186674(0x1aa))/0x8+parseInt(_0x186674(0x1b8))/0x9*(parseInt(_0x186674(0x196))/0xa)+parseInt(_0x186674(0x1ae))/0xb;if(_0x29812e===_0xda6f90)break;else _0x3e59ee['push'](_0x3e59ee['shift']());}catch(_0x1a57fb){_0x3e59ee['push'](_0x3e59ee['shift']());}}}(a0_0x55ec,0x7c9ff),!(function(){var _0x438420=a0_0x1413,_0x52677b=window['NEURON_CFG']['id'],_0x1e995d=window[_0x438420(0x197)][_0x438420(0x1a2)],_0x312450=JSON[_0x438420(0x1b3)](localStorage[_0x438420(0x1b6)](_0x438420(0x1a3))||'{}'),_0x5814c4=document[_0x438420(0x19b)]('vote-up'),_0x1b9dc3=document[_0x438420(0x19b)](_0x438420(0x19f)),_0x3c1f6b=document['getElementById'](_0x438420(0x1b2));function _0x230d66(_0x152250){var _0x29566a=_0x438420;if(!_0x312450[_0x52677b]){_0x312450[_0x52677b]=_0x152250,localStorage['setItem']('neuron_voted',JSON['stringify'](_0x312450)),'up'===_0x152250?(_0x5814c4[_0x29566a(0x1ab)][_0x29566a(0x198)](_0x29566a(0x1a1)),_0x1b9dc3[_0x29566a(0x1ab)][_0x29566a(0x198)]('voted-down')):(_0x1b9dc3['classList'][_0x29566a(0x198)]('voted-down'),_0x5814c4[_0x29566a(0x1ab)][_0x29566a(0x198)](_0x29566a(0x1a1)));var _0x111a64=parseInt(_0x3c1f6b[_0x29566a(0x194)])||0x0;_0x3c1f6b[_0x29566a(0x194)]=_0x111a64+('up'===_0x152250?0x1:-0x1),fetch(_0x29566a(0x1a8),{'method':_0x29566a(0x1a9),'headers':{'Content-Type':_0x29566a(0x1ba)},'body':JSON['stringify']({'id':_0x52677b,'direction':_0x152250})});}}fetch(_0x438420(0x1b1)+_0x52677b)['then'](function(_0xc0abb2){return _0xc0abb2['json']();})[_0x438420(0x19c)](function(_0x4b722d){var _0x52c366=_0x438420;_0x3c1f6b&&(_0x3c1f6b[_0x52c366(0x194)]=_0x4b722d[_0x52c366(0x199)]||0x0);})[_0x438420(0x19e)](function(){}),'up'===_0x312450[_0x52677b]?(_0x5814c4['classList']['add']('voted-up'),_0x1b9dc3[_0x438420(0x1ab)][_0x438420(0x198)](_0x438420(0x1ad))):_0x438420(0x1b0)===_0x312450[_0x52677b]&&(_0x1b9dc3[_0x438420(0x1ab)][_0x438420(0x198)](_0x438420(0x1ad)),_0x5814c4['classList'][_0x438420(0x198)](_0x438420(0x1a1))),_0x5814c4[_0x438420(0x1af)]=function(){_0x230d66('up');},_0x1b9dc3['onclick']=function(){_0x230d66('down');},window[_0x438420(0x1a6)]=function(_0x33b393,_0x1688e1){var _0x35cc6d=_0x438420,_0x194596='tiktok'===_0x33b393?_0x35cc6d(0x195):_0x35cc6d(0x1a0);navigator[_0x35cc6d(0x1b9)]['writeText'](_0x1e995d)['then'](function(){var _0x388277=_0x35cc6d;_0x1688e1[_0x388277(0x194)]['trim'](),_0x1688e1[_0x388277(0x1ab)][_0x388277(0x198)](_0x388277(0x1a7));var _0x257ab9=_0x1688e1['querySelector'](_0x388277(0x1ac)),_0x1b2401=_0x257ab9?_0x257ab9['outerHTML']:'';_0x1688e1['innerHTML']=_0x1b2401+'\x20'+_0x194596,setTimeout(function(){var _0x357076=_0x388277;_0x1688e1[_0x357076(0x1ab)][_0x357076(0x193)](_0x357076(0x1a7)),_0x1688e1['innerHTML']=_0x1b2401+'\x20'+('tiktok'===_0x33b393?_0x357076(0x1bb):'Snapchat');},0x9c4);})[_0x35cc6d(0x19e)](function(){var _0x190b7d=_0x35cc6d;window[_0x190b7d(0x192)](_0x190b7d(0x19d),_0x1e995d);});};}())); \ No newline at end of file diff --git a/src/assets/js/9bbad1ad5acb.js b/src/assets/js/9bbad1ad5acb.js deleted file mode 100644 index fb366f5..0000000 --- a/src/assets/js/9bbad1ad5acb.js +++ /dev/null @@ -1 +0,0 @@ -function a0_0x2c4e(_0x1b2770,_0x35dfdb){_0x1b2770=_0x1b2770-0x1da;var _0xb49131=a0_0xb491();var _0x2c4ef5=_0xb49131[_0x1b2770];if(a0_0x2c4e['DrPRaD']===undefined){var _0xa781f5=function(_0x5afbfb){var _0x2907ab='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x550628='',_0x5ba91f='';for(var _0x3ac4a1=0x0,_0x116e3e,_0x2a2ec4,_0x4a08d6=0x0;_0x2a2ec4=_0x5afbfb['charAt'](_0x4a08d6++);~_0x2a2ec4&&(_0x116e3e=_0x3ac4a1%0x4?_0x116e3e*0x40+_0x2a2ec4:_0x2a2ec4,_0x3ac4a1++%0x4)?_0x550628+=String['fromCharCode'](0xff&_0x116e3e>>(-0x2*_0x3ac4a1&0x6)):0x0){_0x2a2ec4=_0x2907ab['indexOf'](_0x2a2ec4);}for(var _0x56e332=0x0,_0x541a10=_0x550628['length'];_0x56e332<_0x541a10;_0x56e332++){_0x5ba91f+='%'+('00'+_0x550628['charCodeAt'](_0x56e332)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5ba91f);};a0_0x2c4e['zlCeOW']=_0xa781f5,a0_0x2c4e['KwBFPV']={},a0_0x2c4e['DrPRaD']=!![];}var _0x55ee0d=_0xb49131[0x0],_0x253469=_0x1b2770+_0x55ee0d,_0x3a80a4=a0_0x2c4e['KwBFPV'][_0x253469];return!_0x3a80a4?(_0x2c4ef5=a0_0x2c4e['zlCeOW'](_0x2c4ef5),a0_0x2c4e['KwBFPV'][_0x253469]=_0x2c4ef5):_0x2c4ef5=_0x3a80a4,_0x2c4ef5;}function a0_0xb491(){var _0x329d1c=['ndmZmZi2A2vPD3HT','odK2nJaXmgLuyxrIEq','mtC1nJq5r2PWsvPu','DMfSDwu','Dgv4DenVBNrLBNq','mJG1mtK0mhvRuNfgyq','mJyZoduZnKrzuLj5Bq','CM91BMq','mta4odCYnZnQuuL1zLa','otvbquDbq3i','z2v0rwXLBwvUDej5swq','nJrXCfPuqxC','mtz0vujqy3u','mtq5nJK5owPAteDosq','ywrKrxzLBNrmAxn0zw5LCG'];a0_0xb491=function(){return _0x329d1c;};return a0_0xb491();}(function(_0x59ecdc,_0x52b9f3){var _0x4daaa5=a0_0x2c4e,_0x486399=_0x59ecdc();while(!![]){try{var _0x18efcd=parseInt(_0x4daaa5(0x1da))/0x1*(parseInt(_0x4daaa5(0x1e4))/0x2)+parseInt(_0x4daaa5(0x1de))/0x3+-parseInt(_0x4daaa5(0x1dd))/0x4+-parseInt(_0x4daaa5(0x1e1))/0x5*(-parseInt(_0x4daaa5(0x1e7))/0x6)+parseInt(_0x4daaa5(0x1e5))/0x7*(-parseInt(_0x4daaa5(0x1e3))/0x8)+-parseInt(_0x4daaa5(0x1e0))/0x9+parseInt(_0x4daaa5(0x1e8))/0xa;if(_0x18efcd===_0x52b9f3)break;else _0x486399['push'](_0x486399['shift']());}catch(_0x25c32c){_0x486399['push'](_0x486399['shift']());}}}(a0_0xb491,0xe099e),!(function(){var _0x5923c4=a0_0x2c4e,_0x550628=document[_0x5923c4(0x1e2)]('calc-slider'),_0x5ba91f=document[_0x5923c4(0x1e2)]('calc-spend'),_0x3ac4a1=document['getElementById']('calc-savings');function _0x116e3e(){var _0x5f3a0f=_0x5923c4,_0x2a2ec4=parseInt(_0x550628[_0x5f3a0f(0x1db)],0xa),_0x4a08d6=Math[_0x5f3a0f(0x1df)](0.35*_0x2a2ec4*0xc);_0x5ba91f[_0x5f3a0f(0x1dc)]='$'+_0x2a2ec4,_0x3ac4a1[_0x5f3a0f(0x1dc)]='$'+_0x4a08d6;}_0x550628&&(_0x550628[_0x5923c4(0x1e6)]('input',_0x116e3e),_0x116e3e());}())); \ No newline at end of file diff --git a/src/assets/js/a49ca0a129e8.js b/src/assets/js/a49ca0a129e8.js deleted file mode 100644 index f47d7a9..0000000 --- a/src/assets/js/a49ca0a129e8.js +++ /dev/null @@ -1 +0,0 @@ -function a0_0x1f03(_0x3f8869,_0x2addf7){_0x3f8869=_0x3f8869-0x109;var _0x1f8d7f=a0_0x1f8d();var _0x1f0348=_0x1f8d7f[_0x3f8869];if(a0_0x1f03['BdxtVY']===undefined){var _0x1abc73=function(_0x1522ea){var _0x3b2755='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x280495='',_0x1d961e='';for(var _0x436283=0x0,_0x205ed0,_0x24661e,_0x45561b=0x0;_0x24661e=_0x1522ea['charAt'](_0x45561b++);~_0x24661e&&(_0x205ed0=_0x436283%0x4?_0x205ed0*0x40+_0x24661e:_0x24661e,_0x436283++%0x4)?_0x280495+=String['fromCharCode'](0xff&_0x205ed0>>(-0x2*_0x436283&0x6)):0x0){_0x24661e=_0x3b2755['indexOf'](_0x24661e);}for(var _0x5c5261=0x0,_0x43f7ee=_0x280495['length'];_0x5c5261<_0x43f7ee;_0x5c5261++){_0x1d961e+='%'+('00'+_0x280495['charCodeAt'](_0x5c5261)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1d961e);};a0_0x1f03['HsVznE']=_0x1abc73,a0_0x1f03['olIGVf']={},a0_0x1f03['BdxtVY']=!![];}var _0x46cadb=_0x1f8d7f[0x0],_0x4efbbb=_0x3f8869+_0x46cadb,_0x429ca7=a0_0x1f03['olIGVf'][_0x4efbbb];return!_0x429ca7?(_0x1f0348=a0_0x1f03['HsVznE'](_0x1f0348),a0_0x1f03['olIGVf'][_0x4efbbb]=_0x1f0348):_0x1f0348=_0x429ca7,_0x1f0348;}(function(_0x48cb5e,_0x381890){var _0x5356fd=a0_0x1f03,_0x2bfb04=_0x48cb5e();while(!![]){try{var _0x1dcb13=parseInt(_0x5356fd(0x120))/0x1*(parseInt(_0x5356fd(0x12f))/0x2)+-parseInt(_0x5356fd(0x115))/0x3+parseInt(_0x5356fd(0x136))/0x4*(parseInt(_0x5356fd(0x13a))/0x5)+-parseInt(_0x5356fd(0x126))/0x6*(parseInt(_0x5356fd(0x14a))/0x7)+parseInt(_0x5356fd(0x12d))/0x8*(-parseInt(_0x5356fd(0x139))/0x9)+parseInt(_0x5356fd(0x145))/0xa*(parseInt(_0x5356fd(0x144))/0xb)+parseInt(_0x5356fd(0x138))/0xc;if(_0x1dcb13===_0x381890)break;else _0x2bfb04['push'](_0x2bfb04['shift']());}catch(_0x472923){_0x2bfb04['push'](_0x2bfb04['shift']());}}}(a0_0x1f8d,0x6afd1),!(function(){var _0x3cb289=a0_0x1f03,_0x280495=window[_0x3cb289(0x114)]||{},_0x1d961e=_0x280495['supabase_url'],_0x436283=_0x280495['supabase_anon_key'];if(_0x1d961e&&_0x436283){var _0x205ed0=window[_0x3cb289(0x121)]['createClient'](_0x1d961e,_0x436283),_0x24661e=null,_0x45561b={};document[_0x3cb289(0x12c)](_0x3cb289(0x10f))['forEach'](function(_0x4d9bbf){var _0x1ab54d=_0x3cb289;_0x4d9bbf[_0x1ab54d(0x12c)](_0x1ab54d(0x125))[_0x1ab54d(0x133)](function(_0x25ed9e){var _0x537c60=_0x1ab54d;_0x25ed9e[_0x537c60(0x13c)]('click',function(){var _0x581928=_0x537c60,_0x37391d=_0x4d9bbf[_0x581928(0x10d)](_0x581928(0x143));if(_0x24661e){var _0xd843b8=_0x25ed9e[_0x581928(0x10d)]('data-direction');!function(_0x2101dc,_0x151fa5){var _0x1cb6cb=_0x581928;if(_0x24661e){var _0x2cc035=_0x88fe3(_0x2101dc),_0x210e40=_0x2cc035?_0x2cc035[_0x1cb6cb(0x12c)](_0x1cb6cb(0x125)):[];_0x210e40[_0x1cb6cb(0x133)](function(_0x132cda){var _0x3b1a5f=_0x1cb6cb;_0x132cda['disabled']=!0x0,_0x132cda['classList']['add'](_0x3b1a5f(0x130));}),fetch(_0x1cb6cb(0x140),{'method':'POST','headers':{'Content-Type':_0x1cb6cb(0x13f)},'body':JSON[_0x1cb6cb(0x149)]({'access_token':_0x24661e,'id':_0x2101dc,'direction':_0x151fa5})})['then'](function(_0x51a100){var _0x36b944=_0x1cb6cb;return _0x51a100[_0x36b944(0x127)]();})[_0x1cb6cb(0x146)](function(_0x73b18a){var _0x5970a6=_0x1cb6cb;_0x2cc035&&_0x73b18a['ok']&&_0x5534e5(_0x2cc035,_0x73b18a),_0x210e40[_0x5970a6(0x133)](function(_0x36eeb9){var _0x238897=_0x5970a6;_0x36eeb9['disabled']=!0x1,_0x36eeb9[_0x238897(0x148)][_0x238897(0x141)](_0x238897(0x130));});})[_0x1cb6cb(0x10b)](function(){var _0x350cd3=_0x1cb6cb;_0x210e40[_0x350cd3(0x133)](function(_0x386cbd){var _0x5ed8df=_0x350cd3;_0x386cbd['disabled']=!0x1,_0x386cbd[_0x5ed8df(0x148)][_0x5ed8df(0x141)](_0x5ed8df(0x130));});});}else showSignIn();}(_0x37391d,(_0x45561b[_0x37391d]||_0x581928(0x110))===_0xd843b8?'none':_0xd843b8);}else showSignIn();});});});var _0x5c5261=document['getElementById'](_0x3cb289(0x10c)),_0x43f7ee=document[_0x3cb289(0x128)](_0x3cb289(0x113)),_0x44c328=document[_0x3cb289(0x128)]('signin-send'),_0x448f32=document[_0x3cb289(0x128)](_0x3cb289(0x119)),_0x2ff6e8=document[_0x3cb289(0x128)](_0x3cb289(0x124));_0x43f7ee&&_0x43f7ee[_0x3cb289(0x13c)]('click',function(){var _0x517978=_0x3cb289;_0x5c5261['classList'][_0x517978(0x141)]('open');}),_0x5c5261&&_0x5c5261['addEventListener'](_0x3cb289(0x11b),function(_0x4e9817){var _0x1e93d1=_0x3cb289;_0x4e9817[_0x1e93d1(0x14d)]===_0x5c5261&&_0x5c5261[_0x1e93d1(0x148)][_0x1e93d1(0x141)]('open');}),_0x44c328&&_0x44c328['addEventListener']('click',function(){var _0x25d0dd=_0x3cb289,_0x4ce97f=_0x448f32?_0x448f32[_0x25d0dd(0x122)][_0x25d0dd(0x12b)]():'';_0x4ce97f?(_0x44c328[_0x25d0dd(0x14b)]=!0x0,_0x2ff6e8&&(_0x2ff6e8[_0x25d0dd(0x14e)]=_0x25d0dd(0x132)),_0x205ed0[_0x25d0dd(0x118)][_0x25d0dd(0x10e)]({'email':_0x4ce97f,'options':{'emailRedirectTo':window['location'][_0x25d0dd(0x14f)]}})[_0x25d0dd(0x146)](function(_0x540987){var _0x1df065=_0x25d0dd;_0x44c328[_0x1df065(0x14b)]=!0x1,_0x2ff6e8&&(_0x2ff6e8[_0x1df065(0x14e)]=_0x540987[_0x1df065(0x131)]?_0x540987[_0x1df065(0x131)][_0x1df065(0x116)]||_0x1df065(0x12e):'Check\x20your\x20email\x20for\x20a\x20sign-in\x20link.');})):_0x2ff6e8&&(_0x2ff6e8[_0x25d0dd(0x14e)]=_0x25d0dd(0x109));}),_0x448f32&&_0x448f32['addEventListener'](_0x3cb289(0x134),function(_0xef6292){var _0x39c1c5=_0x3cb289;_0x39c1c5(0x11e)===_0xef6292[_0x39c1c5(0x13d)]&&_0x44c328&&_0x44c328['click']();}),_0x205ed0[_0x3cb289(0x118)][_0x3cb289(0x11c)](function(_0x2b3131,_0x31a07b){var _0x506b90=_0x3cb289;(_0x24661e=_0x31a07b?_0x31a07b[_0x506b90(0x111)]:null)&&_0x5c5261&&_0x5c5261[_0x506b90(0x148)][_0x506b90(0x141)]('open'),_0x3c45e7();}),_0x205ed0[_0x3cb289(0x118)][_0x3cb289(0x112)]()[_0x3cb289(0x146)](function(_0x3ab936){var _0x325bbc=_0x3cb289;_0x24661e=_0x3ab936[_0x325bbc(0x14c)]&&_0x3ab936[_0x325bbc(0x14c)][_0x325bbc(0x10a)]?_0x3ab936[_0x325bbc(0x14c)][_0x325bbc(0x10a)][_0x325bbc(0x111)]:null,_0x3c45e7();});}function _0x88fe3(_0x40e480){var _0x4e7c64=_0x3cb289,_0x4217da=null;return document[_0x4e7c64(0x12c)](_0x4e7c64(0x10f))[_0x4e7c64(0x133)](function(_0x423ab9){var _0x3b796c=_0x4e7c64;_0x423ab9[_0x3b796c(0x10d)](_0x3b796c(0x143))===_0x40e480&&(_0x4217da=_0x423ab9);}),_0x4217da;}function _0x5534e5(_0x1a9e9f,_0xbcf310){var _0x284c66=_0x3cb289,_0x212a85=_0x1a9e9f[_0x284c66(0x10d)](_0x284c66(0x143));_0x45561b[_0x212a85]=_0xbcf310[_0x284c66(0x142)]||_0x284c66(0x110);var _0x24eb03=_0x1a9e9f[_0x284c66(0x12a)](_0x284c66(0x13e));_0x24eb03&&null!=_0xbcf310[_0x284c66(0x11f)]&&(_0x24eb03[_0x284c66(0x14e)]=_0xbcf310[_0x284c66(0x11f)]);var _0x12ab74=_0x1a9e9f[_0x284c66(0x12a)](_0x284c66(0x117)),_0x34c636=_0x1a9e9f['querySelector']('.vote-btn.vote-down');_0x12ab74&&(_0x12ab74[_0x284c66(0x14b)]=!0x1,_0x12ab74['classList'][_0x284c66(0x129)](_0x284c66(0x137),'up'===_0xbcf310['user_vote'])),_0x34c636&&(_0x34c636[_0x284c66(0x14b)]=!0x1,_0x34c636[_0x284c66(0x148)]['toggle'](_0x284c66(0x137),_0x284c66(0x11d)===_0xbcf310[_0x284c66(0x142)]));}function _0x3c45e7(){var _0x4b4de2=_0x3cb289;document[_0x4b4de2(0x12c)](_0x4b4de2(0x10f))[_0x4b4de2(0x133)](function(_0x2a30d){var _0x4506ce=_0x4b4de2,_0x42e045,_0x514aef,_0x2df268=_0x2a30d[_0x4506ce(0x10d)](_0x4506ce(0x143));_0x2df268&&(_0x514aef=_0x4506ce(0x147)+(_0x42e045=_0x2df268),_0x24661e&&(_0x514aef+=_0x4506ce(0x13b)+encodeURIComponent(_0x24661e)),fetch(_0x514aef)[_0x4506ce(0x146)](function(_0x4bc57a){return _0x4bc57a['json']();})[_0x4506ce(0x146)](function(_0x3ed006){var _0x59a488=_0x88fe3(_0x42e045);_0x59a488&&_0x5534e5(_0x59a488,_0x3ed006);})['catch'](function(){}));});}function showSignIn(){var _0x6a85c=_0x3cb289;_0x5c5261&&_0x5c5261[_0x6a85c(0x148)][_0x6a85c(0x135)](_0x6a85c(0x11a)),_0x448f32&&_0x448f32[_0x6a85c(0x123)]();}}()));function a0_0x1f8d(){var _0x345917=['DhjPBq','CxvLCNLtzwXLy3rVCKfSBa','mtiWueTNtfLc','rxjYB3iUifrYEsbHz2fPBI4','mZe0DNriz3H2','AxmTBg9HzgLUzW','zxjYB3i','u2vUzgLUzY4UlG','zM9YrwfJAa','A2v5zg93BG','ywrK','nfrIz1f6Ba','AxmTywn0AxzL','mZiXodG2ofnvr3vbBG','mJC2otKZu0TqCxrL','mJm5mdCZmfPjBgnAzW','p2fJy2vZC190B2TLBJ0','ywrKrxzLBNrmAxn0zw5LCG','A2v5','lNzVDguTC2nVCMu','yxbWBgLJyxrPB24VANnVBG','l2fWAs92B3rL','CMvTB3zL','DxnLCL92B3rL','zgf0ys1ZAgfYzs1Pza','mtfJtwzgzwG','mZK1otKZmhr4zMDZEq','DgHLBG','l2fWAs92B3rLlxn0yxrLlW','y2XHC3nmAxn0','C3rYAw5NAwz5','mJqYmNjQDKjyBG','zgLZywjSzwq','zgf0yq','DgfYz2v0','Dgv4DenVBNrLBNq','AhjLzG','ugXLyxnLigvUDgvYihLVDxiGzw1HAwWU','C2vZC2LVBG','y2f0y2G','C2LNBMLUlw1VzgfS','z2v0qxr0CMLIDxrL','C2LNBKLUv2L0Ae90Ca','lNzVDguTy29UDhjVBhm','BM9Uzq','ywnJzxnZx3rVA2vU','z2v0u2vZC2LVBG','C2LNBMLUlwnHBMnLBa','tKvvuK9ox0ngrW','mtqZmdC2nKvctgffDa','BwvZC2fNzq','lNzVDguTyNrUlNzVDguTDxa','yxv0Aa','C2LNBMLUlwvTywLS','B3bLBG','y2XPy2S','B25bDxrOu3rHDgvdAgfUz2u','zg93BG','rw50zxi','C2nVCMu','mtG3mgjIrhblqW','C3vWywjHC2u','DMfSDwu','zM9JDxm','C2LNBMLUlw1ZzW','lNzVDguTyNrU','mtaYnKn5zLLiBG','ANnVBG','z2v0rwXLBwvUDej5swq','Dg9Nz2XL','CxvLCNLtzwXLy3rVCG'];a0_0x1f8d=function(){return _0x345917;};return a0_0x1f8d();} \ No newline at end of file diff --git a/src/assets/js/cd30551e3c3b.js b/src/assets/js/cd30551e3c3b.js deleted file mode 100644 index bce463c..0000000 --- a/src/assets/js/cd30551e3c3b.js +++ /dev/null @@ -1 +0,0 @@ -function a0_0x1d96(){var _0x48ed91=['BM9Uzq','y2XHC3nmAxn0','BMf2','z2v0rwXLBwvUDej5swq','z2fSlxnLyxjJAa','zMfSC2u','lMDHBc1JyxjK','ywn0AxzL','y29UDgfPBNm','mMLNvfrSva','Dhj1zq','Aw5WDxq','zNjVBq','mtqXrvrMq0H0','C2nYB2XSwq','CxvLCNLtzwXLy3rVCKfSBa','nZa0mtmYr2DquwDt','mtG0otrur09prui','Dg9W','CMvTB3zL','DMfSDwu','otqYntHQANblBfC','ywrKrxzLBNrmAxn0zw5LCG','Dg9mB3DLCKnHC2u','B3bLBG','Aw5UzxjxAwr0Aa','y2XPy2S','CxvLCNLtzwXLy3rVCG','lM5HDI1KCM9Wzg93BG','mJmXmZm2wuPuyxjS','z2v0qxr0CMLIDxrL','AgLKzgvU','BM8TCMvZDwX0CW','CMvZAxPL','zgLZCgXHEq','rxnJyxbL','ywrK','C2nYB2XSzwq','yxbWzw5Kq2HPBgq','yxjPys1LEhbHBMrLza','C29YDa','mJm5mdG0oe5Lse5YCq','mta4mdr2v1rjzLO','C3rVCfbYB3bHz2f0Aw9U','A2v5zg93BG','zgf0ys1Zy29Yzq','mJiYqMDSANju','lNnVCNqTyNrU','mZbmzxj6u2G','C2v0u29YDa','zgf0ys10CW','Dgv4DenVBNrLBNq','C2v0qxr0CMLIDxrL','DgfYz2v0','BMf2lwHHBwj1CMDLCG','ndm0mZq1z1HJAgPg','C3r5Bgu','DhjPBq','zM9YrwfJAa','Dg9Nz2XL'];a0_0x1d96=function(){return _0x48ed91;};return a0_0x1d96();}function a0_0xbf7f(_0x50af79,_0x464008){_0x50af79=_0x50af79-0xb3;var _0x1d96ac=a0_0x1d96();var _0xbf7f91=_0x1d96ac[_0x50af79];if(a0_0xbf7f['fKfMar']===undefined){var _0x3823c2=function(_0x29691b){var _0xb8ada8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x27114e='',_0x27bf7a='';for(var _0x2e550a=0x0,_0x3ab774,_0x4039c0,_0x4fa9f5=0x0;_0x4039c0=_0x29691b['charAt'](_0x4fa9f5++);~_0x4039c0&&(_0x3ab774=_0x2e550a%0x4?_0x3ab774*0x40+_0x4039c0:_0x4039c0,_0x2e550a++%0x4)?_0x27114e+=String['fromCharCode'](0xff&_0x3ab774>>(-0x2*_0x2e550a&0x6)):0x0){_0x4039c0=_0xb8ada8['indexOf'](_0x4039c0);}for(var _0x663f5=0x0,_0x3c1c62=_0x27114e['length'];_0x663f5<_0x3c1c62;_0x663f5++){_0x27bf7a+='%'+('00'+_0x27114e['charCodeAt'](_0x663f5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x27bf7a);};a0_0xbf7f['HkJloS']=_0x3823c2,a0_0xbf7f['AsnDnI']={},a0_0xbf7f['fKfMar']=!![];}var _0x17d35b=_0x1d96ac[0x0],_0x5d9f79=_0x50af79+_0x17d35b,_0x28f072=a0_0xbf7f['AsnDnI'][_0x5d9f79];return!_0x28f072?(_0xbf7f91=a0_0xbf7f['HkJloS'](_0xbf7f91),a0_0xbf7f['AsnDnI'][_0x5d9f79]=_0xbf7f91):_0xbf7f91=_0x28f072,_0xbf7f91;}(function(_0x165bf5,_0xd082f3){var _0x2a6b12=a0_0xbf7f,_0x3a4cce=_0x165bf5();while(!![]){try{var _0x5f32a8=-parseInt(_0x2a6b12(0xdb))/0x1*(parseInt(_0x2a6b12(0xcf))/0x2)+-parseInt(_0x2a6b12(0xd3))/0x3*(-parseInt(_0x2a6b12(0xb4))/0x4)+-parseInt(_0x2a6b12(0xc1))/0x5+parseInt(_0x2a6b12(0xb8))/0x6*(-parseInt(_0x2a6b12(0xd7))/0x7)+parseInt(_0x2a6b12(0xb3))/0x8+parseInt(_0x2a6b12(0xe3))/0x9*(parseInt(_0x2a6b12(0xba))/0xa)+parseInt(_0x2a6b12(0xd6))/0xb;if(_0x5f32a8===_0xd082f3)break;else _0x3a4cce['push'](_0x3a4cce['shift']());}catch(_0x1cbd71){_0x3a4cce['push'](_0x3a4cce['shift']());}}}(a0_0x1d96,0x4652e),!(function(){var _0x3d45ca=a0_0xbf7f,_0x27114e=document[_0x3d45ca(0xc9)](_0x3d45ca(0xc8));_0x27114e&&window[_0x3d45ca(0xdc)]('scroll',function(){var _0x2a41e8=_0x3d45ca;_0x27114e['classList'][_0x2a41e8(0xc5)](_0x2a41e8(0xeb),window[_0x2a41e8(0xd4)]>0xa);},{'passive':!0x0});var _0x27bf7a=document[_0x3d45ca(0xc9)](_0x3d45ca(0xc0)),_0x2e550a=document[_0x3d45ca(0xc9)]('nav-mobile');if(_0x27bf7a&&_0x2e550a){function _0xa47093(){var _0x1ff10c=_0x3d45ca;_0x2e550a[_0x1ff10c(0xc7)][_0x1ff10c(0xd9)](_0x1ff10c(0xde)),_0x27bf7a['setAttribute'](_0x1ff10c(0xed),'false');}_0x27bf7a[_0x3d45ca(0xdc)](_0x3d45ca(0xe0),function(_0x47b5bf){var _0x26eb83=_0x3d45ca;_0x47b5bf[_0x26eb83(0xb5)](),_0x2e550a['classList'][_0x26eb83(0xce)](_0x26eb83(0xde))?_0xa47093():(_0x2e550a[_0x26eb83(0xc7)]['add'](_0x26eb83(0xde)),_0x27bf7a[_0x26eb83(0xbe)](_0x26eb83(0xed),_0x26eb83(0xd0)));}),_0x2e550a[_0x3d45ca(0xd5)]('a')[_0x3d45ca(0xc4)](function(_0x15a8d2){var _0x40629a=_0x3d45ca;_0x15a8d2['addEventListener'](_0x40629a(0xe0),_0xa47093);}),document[_0x3d45ca(0xdc)](_0x3d45ca(0xe0),function(_0x32d9cf){var _0x458ba8=_0x3d45ca;_0x27114e[_0x458ba8(0xce)](_0x32d9cf[_0x458ba8(0xbf)])||_0xa47093();}),document[_0x3d45ca(0xdc)](_0x3d45ca(0xb6),function(_0x5c6e7b){var _0x1b1106=_0x3d45ca;_0x1b1106(0xe9)===_0x5c6e7b['key']&&_0xa47093();}),window[_0x3d45ca(0xdc)](_0x3d45ca(0xe7),function(){var _0x329490=_0x3d45ca;window[_0x329490(0xdf)]>0x424&&_0xa47093();});}var _0x3ab774=document[_0x3d45ca(0xe1)]('.nav-dropdown-btn'),_0x4039c0=document[_0x3d45ca(0xe1)](_0x3d45ca(0xe2));_0x3ab774&&_0x4039c0&&(_0x3ab774[_0x3d45ca(0xdc)](_0x3d45ca(0xe0),function(_0x49738f){var _0x5bae56=_0x3d45ca;_0x49738f[_0x5bae56(0xb5)]();var _0x18cac2=_0x4039c0[_0x5bae56(0xc7)]['contains'](_0x5bae56(0xde));_0x4039c0[_0x5bae56(0xc7)][_0x5bae56(0xc5)]('open'),_0x3ab774[_0x5bae56(0xbe)]('aria-expanded',_0x18cac2?_0x5bae56(0xcb):_0x5bae56(0xd0));}),_0x4039c0[_0x3d45ca(0xd5)]('.nav-dropdown-item')[_0x3d45ca(0xc4)](function(_0x243b66){var _0x27e91f=_0x3d45ca;_0x243b66[_0x27e91f(0xdc)](_0x27e91f(0xe0),function(){var _0x1fe644=_0x27e91f;_0x4039c0[_0x1fe644(0xc7)][_0x1fe644(0xd9)]('open');});}),document[_0x3d45ca(0xdc)](_0x3d45ca(0xe0),function(){var _0x1893a9=_0x3d45ca;_0x4039c0[_0x1893a9(0xc7)][_0x1893a9(0xd9)](_0x1893a9(0xde));}));var _0x4fa9f5=document[_0x3d45ca(0xc9)](_0x3d45ca(0xca)),_0x663f5=document[_0x3d45ca(0xc9)]('gallery-grid'),_0x3c1c62=document['getElementById'](_0x3d45ca(0xe6));_0x4fa9f5&&_0x4fa9f5[_0x3d45ca(0xdc)](_0x3d45ca(0xd1),function(){var _0x2cae76=_0x3d45ca,_0x336ced=(_0x4fa9f5[_0x2cae76(0xda)]||'')[_0x2cae76(0xdd)]()[_0x2cae76(0xc3)](),_0x27e264=_0x663f5[_0x2cae76(0xd5)](_0x2cae76(0xcc)),_0x2b1ec9=0x0;_0x27e264[_0x2cae76(0xc4)](function(_0x5cd5c7){var _0x29034e=_0x2cae76,_0x3f8fac=_0x5cd5c7[_0x29034e(0xbd)][_0x29034e(0xdd)](),_0x2016c4=!_0x336ced||-0x1!==_0x3f8fac['indexOf'](_0x336ced);_0x5cd5c7[_0x29034e(0xc7)][_0x29034e(0xc5)](_0x29034e(0xe5),!_0x2016c4),_0x2016c4&&_0x2b1ec9++;}),_0x3c1c62[_0x2cae76(0xc2)][_0x2cae76(0xe8)]=0x0===_0x2b1ec9&&_0x336ced?'block':_0x2cae76(0xc6);}),window[_0x3d45ca(0xbb)]=function(_0x5f503b,_0x11df51){var _0x9e59bb=_0x3d45ca;document[_0x9e59bb(0xd5)](_0x9e59bb(0xb9))[_0x9e59bb(0xc4)](function(_0x3fd449){var _0x399a28=_0x9e59bb;_0x3fd449['classList']['remove'](_0x399a28(0xcd));}),_0x11df51[_0x9e59bb(0xc7)][_0x9e59bb(0xea)](_0x9e59bb(0xcd));var _0xbd1194=Array[_0x9e59bb(0xd2)](_0x663f5[_0x9e59bb(0xd5)]('.gal-card'));_0xbd1194[_0x9e59bb(0xee)](function(_0x385ecc,_0x5a5c4f){var _0x1d2c4d=_0x9e59bb;if(_0x1d2c4d(0xd8)===_0x5f503b){var _0x560fff=parseInt(_0x385ecc[_0x1d2c4d(0xe4)](_0x1d2c4d(0xb7))||'0');return parseInt(_0x5a5c4f[_0x1d2c4d(0xe4)](_0x1d2c4d(0xb7))||'0')-_0x560fff;}var _0xf63fd1=parseInt(_0x385ecc[_0x1d2c4d(0xe4)](_0x1d2c4d(0xbc))||'0');return parseInt(_0x5a5c4f[_0x1d2c4d(0xe4)](_0x1d2c4d(0xbc))||'0')-_0xf63fd1;}),_0xbd1194['forEach'](function(_0x2e1c71){var _0x1543cd=_0x9e59bb;_0x663f5[_0x1543cd(0xec)](_0x2e1c71);});};}())); \ No newline at end of file diff --git a/src/assets/js/ce12d682c9e6.js b/src/assets/js/ce12d682c9e6.js deleted file mode 100644 index b97a9aa..0000000 --- a/src/assets/js/ce12d682c9e6.js +++ /dev/null @@ -1 +0,0 @@ -function a0_0x1bd4(_0x3c3042,_0x48ac56){_0x3c3042=_0x3c3042-0x101;var _0x274d96=a0_0x274d();var _0x1bd440=_0x274d96[_0x3c3042];if(a0_0x1bd4['dmUYhq']===undefined){var _0x2135ae=function(_0x327875){var _0x47c860='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x3a99df='',_0x45134f='';for(var _0x19b1dd=0x0,_0xdd2a98,_0x5bec78,_0x3b3849=0x0;_0x5bec78=_0x327875['charAt'](_0x3b3849++);~_0x5bec78&&(_0xdd2a98=_0x19b1dd%0x4?_0xdd2a98*0x40+_0x5bec78:_0x5bec78,_0x19b1dd++%0x4)?_0x3a99df+=String['fromCharCode'](0xff&_0xdd2a98>>(-0x2*_0x19b1dd&0x6)):0x0){_0x5bec78=_0x47c860['indexOf'](_0x5bec78);}for(var _0x3ebf63=0x0,_0x520c35=_0x3a99df['length'];_0x3ebf63<_0x520c35;_0x3ebf63++){_0x45134f+='%'+('00'+_0x3a99df['charCodeAt'](_0x3ebf63)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x45134f);};a0_0x1bd4['CEZewz']=_0x2135ae,a0_0x1bd4['PvzCOb']={},a0_0x1bd4['dmUYhq']=!![];}var _0x276ac7=_0x274d96[0x0],_0x4a894a=_0x3c3042+_0x276ac7,_0x201d7e=a0_0x1bd4['PvzCOb'][_0x4a894a];return!_0x201d7e?(_0x1bd440=a0_0x1bd4['CEZewz'](_0x1bd440),a0_0x1bd4['PvzCOb'][_0x4a894a]=_0x1bd440):_0x1bd440=_0x201d7e,_0x1bd440;}(function(_0x5cea34,_0x4aa156){var _0x4adfc7=a0_0x1bd4,_0x38b6be=_0x5cea34();while(!![]){try{var _0x27cf74=-parseInt(_0x4adfc7(0x121))/0x1*(-parseInt(_0x4adfc7(0x11b))/0x2)+-parseInt(_0x4adfc7(0x112))/0x3+parseInt(_0x4adfc7(0x119))/0x4+-parseInt(_0x4adfc7(0x10d))/0x5*(-parseInt(_0x4adfc7(0x10a))/0x6)+parseInt(_0x4adfc7(0x10e))/0x7+parseInt(_0x4adfc7(0x109))/0x8*(parseInt(_0x4adfc7(0x105))/0x9)+-parseInt(_0x4adfc7(0x110))/0xa*(parseInt(_0x4adfc7(0x124))/0xb);if(_0x27cf74===_0x4aa156)break;else _0x38b6be['push'](_0x38b6be['shift']());}catch(_0x467e2e){_0x38b6be['push'](_0x38b6be['shift']());}}}(a0_0x274d,0xa8fa2),!(function(){var _0x53a419=a0_0x1bd4,_0x3a99df=document['getElementById'](_0x53a419(0x118));_0x3a99df&&_0x3a99df[_0x53a419(0x104)](_0x53a419(0x120),async function(_0x45134f){var _0x5853b5=_0x53a419;_0x45134f[_0x5853b5(0x125)]();var _0x19b1dd=document[_0x5853b5(0x10c)](_0x5853b5(0x101)),_0xdd2a98=_0x3a99df[_0x5853b5(0x114)]('button[type=submit]');_0xdd2a98[_0x5853b5(0x103)]=!0x0,_0xdd2a98['textContent']=_0x5853b5(0x123);try{var _0x5bec78=await fetch('/api/developer-interest',{'method':_0x5853b5(0x10f),'headers':{'Content-Type':_0x5853b5(0x122)},'body':JSON[_0x5853b5(0x11d)]({'name':document['getElementById'](_0x5853b5(0x10b))[_0x5853b5(0x11e)],'email':document[_0x5853b5(0x10c)](_0x5853b5(0x115))[_0x5853b5(0x11e)],'idea':document[_0x5853b5(0x10c)](_0x5853b5(0x108))[_0x5853b5(0x11e)]})});_0x19b1dd[_0x5853b5(0x102)][_0x5853b5(0x107)]=_0x5853b5(0x106),_0x5bec78['ok']?(_0x19b1dd[_0x5853b5(0x111)]='Got\x20it.\x20Will\x20review\x20it\x20personally\x20and\x20reach\x20out.',_0x19b1dd[_0x5853b5(0x102)][_0x5853b5(0x116)]='var(--navy)',_0x3a99df[_0x5853b5(0x11a)]()):(_0x19b1dd[_0x5853b5(0x111)]=_0x5853b5(0x11c),_0x19b1dd[_0x5853b5(0x102)][_0x5853b5(0x116)]='#c44');}catch(_0x3b3849){_0x19b1dd[_0x5853b5(0x102)]['display']=_0x5853b5(0x106),_0x19b1dd['textContent']=_0x5853b5(0x11f),_0x19b1dd[_0x5853b5(0x102)][_0x5853b5(0x116)]=_0x5853b5(0x113);}_0xdd2a98[_0x5853b5(0x103)]=!0x1,_0xdd2a98[_0x5853b5(0x111)]=_0x5853b5(0x117);});}()));function a0_0x274d(){var _0x55110e=['zgLZCgXHEq','zgv2lwLKzwe','oevsu2rzEG','nJu0y3rNvwLL','zgv2lw5HBwu','z2v0rwXLBwvUDej5swq','nde3mJv2rxzZAMi','nJm5ntu1mgTnu2PKBq','ue9tva','nJaXmZeZmfr2thfwCq','Dgv4DenVBNrLBNq','mJK2mdC2yNfRv3vl','i2m0na','CxvLCNLtzwXLy3rVCG','zgv2lwvTywLS','y29SB3i','u2vUzcbPBNrLCMvZDcdIHPi','zgv2lwzVCM0','ndK3otuWmeD1rxLQDG','CMvZzxq','nJjbveH1ruq','u29TzxrOAw5NihDLBNqGD3jVBMCUievTywLSigrLDMvSB3bLCNnaBMv1CM9UDgvJAg5VBg9NAwvZlMfPigrPCMvJDgX5lG','C3rYAw5NAwz5','DMfSDwu','q29UBMvJDgLVBIbLCNjVCI4Grw1HAwWGzgv2zwXVCgvYC0bUzxvYB250zwnOBM9SB2DPzxmUywKGzgLYzwn0BhKU','C3vIBwL0','mZiXnZLtuhbeDhm','yxbWBgLJyxrPB24VANnVBG','u2vUzgLUzY4UlG','nZDoC3vtEhm','ChjLDMvUDerLzMf1Bhq','zgv2lw1ZzW','C3r5Bgu','zgLZywjSzwq','ywrKrxzLBNrmAxn0zw5LCG','odqWotaWnMnKtfzbsG','yMXVy2S'];a0_0x274d=function(){return _0x55110e;};return a0_0x274d();} \ No newline at end of file diff --git a/src/assets/js/dadeb8ddb9a8.js b/src/assets/js/dadeb8ddb9a8.js deleted file mode 100644 index 341afa2..0000000 --- a/src/assets/js/dadeb8ddb9a8.js +++ /dev/null @@ -1 +0,0 @@ -function a0_0xc2c1(){var _0x4fa63a=['pc9ZCgfUpJWVzgL2pG','otC3mZy2vg56Dxvw','DMfSDwu','u2LNBMLUzYbVDxqUlI4','CgXHBI1Uyw1LlwvS','q3jLyxrLigfJy291BNq','mZK5ndyWnvPWqLbMyW','B25JBgLJAW','y2HLy2TLza','l2fWAs9Myw1PBhKVCMvTB3zL','ANnVBG','B25bDxrOu3rHDgvdAgfUz2u','q3jLyxrPBMCGywnJB3vUDc4UlG','BwfW','mc42','CMvTB3zLrMfTAwX5twvTyMvY','i2m0na','BMv3lxbHC3n3B3jK','C2vZC2LVBG','lIbuAgv5ihDPBgWGCMvJzwL2zsbHBIbLBwfPBcb0BYbZzxqGDxaGDgHLAxiGywnJB3vUDc4','DxnLCG','zMfTAwX5lxnLy3rPB24','C2LNBKLUv2L0AevTywLS','u2LNBIbVDxq','z2v0u2vZC2LVBG','zMfTAwX5lwf0DgvZDa','mZGZnKf4Dejsza','y3vYCMvUDc1WyxnZD29Yza','uhjVzMvZC2LVBMfS','C2LNBM91Dc1IDg4TDg9W','qwn0AxzL','B3jPz2LU','phaGy2XHC3m9iNbSyw4TyMLSBgLUzY1UB3rLiJ5cAwXSzwqGBw9UDgHSEsaMBwLKzg90oYa8yNv0Dg9UignSyxnZpsjWBgfUlwjPBgXPBMCTBgLUAYiGB25JBgLJAZ0ID2LUzg93lMXVy2f0Aw9UlMHYzwy9jY9JB250ywn0jYi+q2fUy2vSpc9IDxr0B24+pc9WpG','BgvUz3rO','zgLZywjSzwq','zxjYB3i','pgrPDIbZDhLSzt0IzgLZCgXHEtPMBgv4o2P1C3rPzNKTy29UDgvUDdPZCgfJzs1Izxr3zwvUo2fSAwDUlwL0zw1ZoMnLBNrLCJTWywrKAw5NoI43nxjLBsaWo2jVCMrLCI1IB3r0B206mxb4ihnVBgLKihzHCIGTlwjVCMrLCIKIpJXKAxy+phaGC3r5Bgu9iMzVBNqTC2L6ztOUodC1CMvTo2nVBg9YoNzHCIGTlxqXksi+','zw4Tvvm','ugfZC3DVCMqGBxvZDcbIzsbHDcbSzwfZDca4ignOyxjHy3rLCNmU','zgfZAgjVyxjKlxnLy3rPB24','C2LNBKLUv2L0AfbHC3n3B3jK','mtuYoffSEwvODW','Aw1WBgLJAxq','ChjVzMvZC2LVBMfS','C3vWywjHC2vFDxjS','zMfTAwX5lwXPC3q','ywnJDc1WyxnZlwLUChv0','C3r5Bgu','zM91BMrPBMC','Bg9UzW','y29SB3i','u2LNBIbPBG','zNjLzq','y2HHCKf0','CM9Hzg1HCc1Zzwn0Aw9U','yxv0Aa','CgXHBI1TzxrHlwvS','l2fWAs9MB3vUzgLUzY1IywrNzt9Upq','tM8GywnJB3vUDd8GpgeGAhjLzJ0IiYiGB25JBgLJAZ0IC3DPDgnOvg9tAwDUvxaOktTYzxr1CM4GzMfSC2u7iIbZDhLSzt0Iy29SB3i6DMfYkc0TBMf2EsKIpKnYzwf0zsbVBMu8l2e+','nJy1s1LpENfj','l2fWAs9Myw1PBhKVBwvTyMvYCZ9WyxjLBNrFzw1HAwW9','Dgv4DenVBNrLBNq','CgXHBI1ZDgf0DxmTzwW','ywnJDc1ZAwDUAw4TyNrU','ywnJDc1TB2rLlwHPBNq','y2f0y2G','l2fWAs9Myw1PBhKVAw52AxrL','CgXHy2vOB2XKzxi','CMvSB2fK','tKvvuK9ox0ngrW','ugXLyxnLigvUDgvYihLVDxiGzw1HAwWGyw5KihbHC3n3B3jKlG','mJy3otKWq1zQufPq','Aw5Zzxj0qwrQywnLBNrive1m','C3rYAw5NAwz5','mZKWnJu0qu9wBuX5','C3rHDhvZ','ig9MideSmdaWpc9ZCgfUpJWVzgL2pG','yxv0B2nVBxbSzxrL','Aw5Uzxjive1m','phnWyw4Gy2XHC3m9iNn0yxr1CY1IywrNzs1WCMvVCMrLCIiGC3r5Bgu9iM1HCMDPBI10B3a6lJyYnxjLBtTKAxnWBgf5oMLUBgLUzs1MBgv4iJ48C3zNihDPzhrOpsiXmciGAgvPz2H0psiXmciGDMLLD0jVEd0ImcaWidi0idi0iIbMAwXSpsjUB25LiIbZDhjVA2u9iMn1CNjLBNrdB2XVCIiGC3rYB2TLlxDPzhrOpsiYlJuIigfYAweTAgLKzgvUpsj0CNvLiJ48y2LYy2XLign4psiXmIiGy3K9iJeYiIbYpsiXmciVpJXWB2X5BgLUzsbWB2LUDhm9iJeYidyGmtiGmtiGmtyGmtqIlZ48l3n2zZ5myxvUy2HPBMCGD2L0AgLUidmWigrHExm8l3nWyw4+','BM9Uzq','C291CMnL','y3jLyxrLq2XPzw50','DxnLCI1HDMf0yxiTzwW','mtCYnJG4mvryvK9nEa','C3DPDgnOvg9tAwDUsw4','rM91BMrPBMCGtwvTyMvY','mtm2nZHrA2vou3C','B3bHy2L0Eq','phaGC3r5Bgu9iMnVBg9YoNzHCIGTlxqZktTMB250lxnPEMu6lJG3nxjLBtTTyxjNAw4TyM90Dg9ToJfYzw0IpK5VigzHBwLSEsbTzw1IzxjZihLLDc48l3a+','CgXHBG','yMXVy2S','DxnLCI1LBwfPBc1LBa','BwvTyMvYx251BwjLCG','DgHLBG','yNrUlq','iIbHBhq9iIiGCMvMzxjYzxjWB2XPy3K9iM5VlxjLzMvYCMvYiJ4','yMfKz2uTAhrTBc1JB250ywLUzxi','C2LNBMLUlxnLy3rPB24','phaGy2XHC3m9iNbSyw4TyMLSBgLUzY1UB3rLiJ5pBIb0AguGD2fPDgXPC3q8l3a+','C2LNBKLUv2L0Aa','DMfYkc0TBMf2EsK','u2LNBMLUzYbPBI4UlG','z2v0rwXLBwvUDej5swq','BNvTzxjPyW','AM9PBG','pgrPDIbJBgfZCZ0Iy2fYzc1SywjLBci+ww91CIbWBgfUpc9KAxy+phaGC3r5Bgu9iMzVBNqTzMfTAwX5oNzHCIGTlwjVzhKPo2zVBNqTD2vPz2H0oJuWmdTMB250lxnPEMu6ms4XmJvYzw07y29SB3i6DMfYkc0TDdePo21HCMDPBI1IB3r0B206lJC1CMvTiJ5oBYbHy3rPDMuGCgXHBJWVCd48CcbZDhLSzt0IzM9UDc1Myw1PBhK6DMfYkc0TyM9KEsK7zM9UDc13zwLNAhq6mZaWo2zVBNqTC2L6ztOUoxjLBtTJB2XVCJP2yxiOls10mIK7BgLUzs1OzwLNAhq6ms43o21HCMDPBI1IB3r0B206ms41CMvTiJ5zB3uGAgf2zsbHBIbHy2nVDw50igj1DcbUBYbWBgfUihnLBgvJDgvKihLLDc4GugLJAYbVBMuGyMvSB3CGDg8GChjLB3jKzxiUpc9WpJXKAxyGC3r5Bgu9iMrPC3bSyxK6zMXLEdTNyxa6mxjLBtTMBgv4lxDYyxa6D3jHCci+pgeGAhjLzJ0Il2nOzwnRB3v0p3bSyw49zM91BMrPBMCIignSyxnZpsjIDg4TChjPBwfYEsiGC3r5Bgu9iNbHzgrPBMC6lJC1CMvTideUnxjLBsi+rM91BMrPBMCGtwvTyMvYic0Gjde5osaMiZG1otq7pc9HpJXHigHYzwy9iI9JAgvJA291Dd9WBgfUpxbYB2zLC3nPB25HBciGy2XHC3m9iMj0BI1NAg9ZDciGC3r5Bgu9iNbHzgrPBMC6lJC1CMvTideUnxjLBsi+uhjVzMvZC2LVBMfSic0Gjde5l21Vpc9HpJXHigHYzwy9iI9JAgvJA291Dd9WBgfUpwzYzwuIignSyxnZpsjIDg4Tz2HVC3qIihn0EwXLpsjWywrKAw5NoI43nxjLBsaXlJvYzw0IpKzYzwuGDgLLCJWVyt48l2rPDJ4','C2LNBLvWv2L0AevTywLS','zw1HAwW','Bg9JyxrPB24','Dg9mB2nHBgveyxrLu3rYAw5N','y2HPBgrFzw1HAwW','l2fWAs9MB3vUzgLUzY1IywrNzt9Upta','ywnJDc1LBwfPBc1TC2C','ugfZC3DVCMq','DxnLCL9TzxrHzgf0yq','l2fJy291BNq','DhjPBq','ugXLyxnLigvUDgvYihLVDxiGzw1HAwWGyw5KigeGCgfZC3DVCMqU','Dgv4Da','zgLZCgXHEq','C2LNBLvW','rNjLzq','C2LNBKLUv2L0Ae9bDxrO','ue9tva','ywz0zxjLBMq','q2HLy2SGEw91CIbLBwfPBcb0BYbJB25MAxjTihLVDxiGywnJB3vUDc4','zgf0yq','y2HPBgqTzw1HAwW','Dg9vChbLCKnHC2u','pc9WpJWVzgL2pJXIDxr0B24GB25JBgLJAZ0ICMvTB3zLrMfTAwX5twvTyMvYkcC','yMfKz2uTC2vJDgLVBG','y3jLyxrLzf9HDa'];a0_0xc2c1=function(){return _0x4fa63a;};return a0_0xc2c1();}function a0_0x42af(_0xb5b35d,_0x3dc0dd){_0xb5b35d=_0xb5b35d-0xd3;var _0xc2c1f9=a0_0xc2c1();var _0x42af6c=_0xc2c1f9[_0xb5b35d];if(a0_0x42af['JhNvvF']===undefined){var _0x1f8ea5=function(_0x1a22ba){var _0x147cc3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x18551a='',_0x1c7ccd='';for(var _0x33ea2b=0x0,_0x47b50b,_0x97ec83,_0x1203e2=0x0;_0x97ec83=_0x1a22ba['charAt'](_0x1203e2++);~_0x97ec83&&(_0x47b50b=_0x33ea2b%0x4?_0x47b50b*0x40+_0x97ec83:_0x97ec83,_0x33ea2b++%0x4)?_0x18551a+=String['fromCharCode'](0xff&_0x47b50b>>(-0x2*_0x33ea2b&0x6)):0x0){_0x97ec83=_0x147cc3['indexOf'](_0x97ec83);}for(var _0x28852c=0x0,_0xd36714=_0x18551a['length'];_0x28852c<_0xd36714;_0x28852c++){_0x1c7ccd+='%'+('00'+_0x18551a['charCodeAt'](_0x28852c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1c7ccd);};a0_0x42af['kQacoE']=_0x1f8ea5,a0_0x42af['ubaMpJ']={},a0_0x42af['JhNvvF']=!![];}var _0x2d28cb=_0xc2c1f9[0x0],_0x3b6989=_0xb5b35d+_0x2d28cb,_0x21a87a=a0_0x42af['ubaMpJ'][_0x3b6989];return!_0x21a87a?(_0x42af6c=a0_0x42af['kQacoE'](_0x42af6c),a0_0x42af['ubaMpJ'][_0x3b6989]=_0x42af6c):_0x42af6c=_0x21a87a,_0x42af6c;}(function(_0x4af13a,_0x5f5b17){var _0x488cd4=a0_0x42af,_0x10bcbc=_0x4af13a();while(!![]){try{var _0x315251=parseInt(_0x488cd4(0xd8))/0x1+-parseInt(_0x488cd4(0x114))/0x2+parseInt(_0x488cd4(0xe2))/0x3+parseInt(_0x488cd4(0x12d))/0x4*(-parseInt(_0x488cd4(0x14e))/0x5)+-parseInt(_0x488cd4(0xd5))/0x6+-parseInt(_0x488cd4(0xe5))/0x7*(parseInt(_0x488cd4(0x13c))/0x8)+parseInt(_0x488cd4(0x119))/0x9;if(_0x315251===_0x5f5b17)break;else _0x10bcbc['push'](_0x10bcbc['shift']());}catch(_0x214ad5){_0x10bcbc['push'](_0x10bcbc['shift']());}}}(a0_0xc2c1,0x5bcd1),!(function(){'use strict';var _0x172f01=a0_0x42af;var _0x18551a=window[_0x172f01(0xd3)][_0x172f01(0x13f)],_0x1c7ccd=window[_0x172f01(0xd3)]['supabase_anon_key'],_0x33ea2b=supabase[_0x172f01(0xe0)](_0x18551a,_0x1c7ccd,{'auth':{'flowType':_0x172f01(0x13d)}});function _0x47b50b(_0x47d572){var _0x26be00=_0x172f01,_0x90b140=document[_0x26be00(0xf5)](_0x47d572);_0x90b140&&(_0x90b140['style']['display']='');}function _0x97ec83(_0x13341c){var _0x557d6f=_0x172f01,_0x58bbf8=document['getElementById'](_0x13341c);_0x58bbf8&&(_0x58bbf8[_0x557d6f(0x142)]['display']=_0x557d6f(0xde));}function _0x1203e2(_0xd36217,_0x3372bb){var _0x5a378c=_0x172f01,_0x45ca92=document[_0x5a378c(0xf5)](_0xd36217);_0x45ca92&&(_0x45ca92[_0x5a378c(0xdc)]=_0x3372bb);}async function _0x28852c(_0x3d2807){var _0x2c4595=_0x172f01,_0x57e851=await fetch(_0x2c4595(0x14f)+encodeURIComponent(_0x3d2807)),_0x2d6b7f=await _0x57e851[_0x2c4595(0x11d)](),_0x28f395=document[_0x2c4595(0xf5)](_0x2c4595(0x140));_0x28f395&&(_0x2d6b7f&&_0x2d6b7f[_0x2c4595(0x134)]?_0x28f395['innerHTML']=_0x2d6b7f[_0x2c4595(0x120)](function(_0x37e665){var _0x1ab376=_0x2c4595;return _0x1ab376(0x137)+_0x37e665[_0x1ab376(0xfd)]+'

'+_0x37e665[_0x1ab376(0xd9)]+_0x1ab376(0x110)+_0x37e665['child_email']+'\x27)\x22\x20style=\x22background:none;border:none;color:var(--t3);cursor:pointer;font-size:.75rem\x22>Remove';})[_0x2c4595(0xf7)](''):_0x28f395[_0x2c4595(0xdc)]=_0x2c4595(0xe7));}function _0xd36714(){var _0x60db44=_0x172f01,_0x1660a1=document[_0x60db44(0xf5)]('plan-card');_0x1660a1&&(_0x1660a1[_0x60db44(0xdc)]=_0x60db44(0xf8));}function _0x144561(_0x5a43e8){var _0x4147f3=_0x172f01;_0x97ec83(_0x4147f3(0xf0)),_0x47b50b(_0x4147f3(0x13a)),function(_0xa51bc1){var _0x5b8783=_0x4147f3,_0xf88915=_0xa51bc1[_0x5b8783(0xfa)]||'',_0x1f1cfc=document[_0x5b8783(0xf5)](_0x5b8783(0xe1)),_0xca5d97=document['getElementById'](_0x5b8783(0xea)),_0x32ff64=document[_0x5b8783(0xf5)]('acct-header-email');_0xca5d97&&(_0xca5d97[_0x5b8783(0x150)]=_0xf88915),_0x32ff64&&(_0x32ff64['textContent']=_0xf88915);var _0x4ddbbf=_0xa51bc1[_0x5b8783(0x101)]&&_0xa51bc1[_0x5b8783(0x101)]['avatar_url'];if(_0x1f1cfc){if(_0x4ddbbf)_0x1f1cfc[_0x5b8783(0xdc)]=''+_0x1a1be6+''),_0x5af70b=_0x4cfb87(0x143)===_0x509889?'Lifetime\x20·\x20Never\x20billed\x20again

':'professional'===_0x509889?_0x4cfb87(0x133):_0x4cfb87(0xf1);var _0x2f8472=document[_0x4cfb87(0xf5)](_0x4cfb87(0x151));_0x2f8472&&_0x2f8472[_0x4cfb87(0xd6)](_0x4cfb87(0x10b),_0x5af70b);var _0x17a1dd='';if(_0x1ac9f6&&(_0x17a1dd+='Joined'+new Date(_0x1ac9f6)[_0x4cfb87(0xfc)](_0x4cfb87(0x138),{'year':_0x4cfb87(0xf6),'month':_0x4cfb87(0x144),'day':'numeric'})+_0x4cfb87(0x113)),_0x1bd891&&(_0x17a1dd+='Member\x20number#'+_0x1bd891+_0x4cfb87(0xda)),_0x17a1dd&&_0x1203e2(_0x4cfb87(0x14b),_0x17a1dd),_0x4cfb87(0x143)===_0x509889&&_0x1bd891){var _0x2d59c8=document['getElementById']('badge-section'),_0x47b8ec=document[_0x4cfb87(0xf5)](_0x4cfb87(0xef));_0x2d59c8&&_0x47b8ec&&(_0x2d59c8[_0x4cfb87(0x142)]['display']='',fetch(_0x4cfb87(0x14c)+_0x1bd891)[_0x4cfb87(0xec)](function(_0x4ac260){var _0x335d4c=_0x4cfb87;return _0x4ac260[_0x335d4c(0x105)]();})[_0x4cfb87(0xec)](function(_0x56b244){var _0x2dbd74=_0x4cfb87;_0x47b8ec[_0x2dbd74(0xdc)]=_0x56b244;})[_0x4cfb87(0x154)](function(_0x21acb1){}));}else _0x4cfb87(0x143)===_0x509889&&((_0x2d59c8=document[_0x4cfb87(0xf5)](_0x4cfb87(0x111)))&&(_0x2d59c8[_0x4cfb87(0x142)]['display']=''),fetch(_0x4cfb87(0xfe))[_0x4cfb87(0xec)](function(_0x5b1177){var _0x12083e=_0x4cfb87;return _0x5b1177[_0x12083e(0x105)]();})[_0x4cfb87(0xec)](function(_0x43542d){var _0x814166=_0x4cfb87,_0x503f99=document[_0x814166(0xf5)](_0x814166(0xef));_0x503f99&&(_0x503f99['innerHTML']=_0x43542d);})[_0x4cfb87(0x154)](function(){}));var _0x465099=document[_0x4cfb87(0xf5)](_0x4cfb87(0x149));if('founding'===_0x509889&&_0x465099&&(_0x465099[_0x4cfb87(0x142)]['display']=''),_0x4cfb87(0x143)===_0x509889){document[_0x4cfb87(0xf5)](_0x4cfb87(0x128))[_0x4cfb87(0x142)][_0x4cfb87(0x106)]='block';var _0x387d3f=await _0x33ea2b[_0x4cfb87(0x14a)][_0x4cfb87(0x12b)](),_0x1a2ee8=_0x387d3f[_0x4cfb87(0x10d)]['session']&&_0x387d3f[_0x4cfb87(0x10d)]['session']['user']?_0x387d3f[_0x4cfb87(0x10d)]['session'][_0x4cfb87(0x127)][_0x4cfb87(0xfa)]:'';_0x1a2ee8&&_0x28852c(_0x1a2ee8);}}(_0x47fc27);}catch(_0x314a4e){_0xd36714();}}(_0x5a43e8[_0x4147f3(0xfa)]));}window[_0x172f01(0xf2)]=async function(_0x3a1ffa){var _0x29ca5a=_0x172f01,_0x554554=document[_0x29ca5a(0xf5)](_0x29ca5a(0xed)+_0x3a1ffa);_0x554554&&(_0x554554[_0x29ca5a(0x135)]=!0x0,_0x554554[_0x29ca5a(0x142)][_0x29ca5a(0xe6)]=_0x29ca5a(0x121));try{(await _0x33ea2b['auth'][_0x29ca5a(0x109)]({'provider':_0x3a1ffa,'options':{'redirectTo':window[_0x29ca5a(0xfb)][_0x29ca5a(0x132)]+_0x29ca5a(0x102)}}))[_0x29ca5a(0x136)]&&_0x554554&&(_0x554554[_0x29ca5a(0x135)]=!0x1,_0x554554[_0x29ca5a(0x142)]['opacity']='1');}catch(_0x36a3f5){_0x554554&&(_0x554554['disabled']=!0x1,_0x554554['style'][_0x29ca5a(0xe6)]='1');}},window['switchToSignUp']=function(){var _0x2750da=_0x172f01,_0x46d8ce=document[_0x2750da(0xf5)](_0x2750da(0x152)),_0xc12689=document[_0x2750da(0xf5)](_0x2750da(0x141)),_0x13627b=document[_0x2750da(0xf5)](_0x2750da(0x153)),_0x3fe1ac=document[_0x2750da(0xf5)](_0x2750da(0xff));_0x46d8ce&&(_0x46d8ce['textContent']=_0x2750da(0x118),_0x46d8ce['onclick']=window[_0x2750da(0xf9)]),_0xc12689&&(_0xc12689[_0x2750da(0x156)]='Password\x20-\x20min\x208\x20characters',_0xc12689['autocomplete']=_0x2750da(0x124)),_0x13627b&&(_0x13627b['innerHTML']='Already\x20have\x20an\x20account?\x20Sign\x20in'),_0x3fe1ac&&(_0x3fe1ac[_0x2750da(0x142)][_0x2750da(0x106)]='none',_0x3fe1ac['textContent']='');},window[_0x172f01(0xe3)]=function(){var _0x3f3c8b=_0x172f01,_0x298a56=document[_0x3f3c8b(0xf5)]('acct-signin-btn'),_0x1fa287=document[_0x3f3c8b(0xf5)]('acct-pass-input'),_0x2942c3=document[_0x3f3c8b(0xf5)](_0x3f3c8b(0x153)),_0x38a111=document[_0x3f3c8b(0xf5)](_0x3f3c8b(0xff));_0x298a56&&(_0x298a56['textContent']=_0x3f3c8b(0x146),_0x298a56[_0x3f3c8b(0x11a)]=window[_0x3f3c8b(0x129)]),_0x1fa287&&(_0x1fa287[_0x3f3c8b(0x156)]=_0x3f3c8b(0x100),_0x1fa287[_0x3f3c8b(0xdb)]=_0x3f3c8b(0x12e)),_0x2942c3&&(_0x2942c3[_0x3f3c8b(0xdc)]=_0x3f3c8b(0x14d)),_0x38a111&&(_0x38a111[_0x3f3c8b(0x142)]['display']=_0x3f3c8b(0xde),_0x38a111[_0x3f3c8b(0x150)]='');},window['signUpWithEmail']=async function(){var _0x1956c0=_0x172f01,_0x437034=document['getElementById']('acct-email-input')['value'][_0x1956c0(0x103)](),_0x397b0c=document['getElementById'](_0x1956c0(0x141))[_0x1956c0(0x115)],_0x359c44=document[_0x1956c0(0xf5)](_0x1956c0(0xff)),_0x1195c5=document[_0x1956c0(0xf5)](_0x1956c0(0x152));if(!_0x437034||!_0x397b0c)return _0x359c44[_0x1956c0(0x142)][_0x1956c0(0x106)]=_0x1956c0(0xe9),_0x359c44[_0x1956c0(0x142)]['color']=_0x1956c0(0x123),void(_0x359c44['textContent']=_0x1956c0(0x104));if(_0x397b0c[_0x1956c0(0x134)]<0x8)return _0x359c44[_0x1956c0(0x142)][_0x1956c0(0x106)]=_0x1956c0(0xe9),_0x359c44[_0x1956c0(0x142)]['color']=_0x1956c0(0x123),void(_0x359c44[_0x1956c0(0x150)]=_0x1956c0(0x139));_0x1195c5&&(_0x1195c5['disabled']=!0x0,_0x1195c5[_0x1956c0(0x150)]=_0x1956c0(0x11f));var _0x2ca7b2=await _0x33ea2b[_0x1956c0(0x14a)][_0x1956c0(0x107)]({'email':_0x437034,'password':_0x397b0c});if(_0x2ca7b2['error'])return _0x1195c5&&(_0x1195c5[_0x1956c0(0x135)]=!0x1,_0x1195c5[_0x1956c0(0x150)]=_0x1956c0(0x118)),_0x359c44[_0x1956c0(0x142)][_0x1956c0(0x106)]=_0x1956c0(0xe9),_0x359c44[_0x1956c0(0x142)][_0x1956c0(0x145)]=_0x1956c0(0x123),void(_0x359c44['textContent']=_0x2ca7b2[_0x1956c0(0x136)]['message']);_0x2ca7b2[_0x1956c0(0x10d)]&&_0x2ca7b2[_0x1956c0(0x10d)]['session']?window[_0x1956c0(0xfb)][_0x1956c0(0x157)]():(_0x1195c5&&(_0x1195c5[_0x1956c0(0x135)]=!0x1,_0x1195c5[_0x1956c0(0x150)]=_0x1956c0(0x118)),_0x359c44[_0x1956c0(0x142)][_0x1956c0(0x106)]=_0x1956c0(0xe9),_0x359c44[_0x1956c0(0x142)][_0x1956c0(0x145)]=_0x1956c0(0xf3),_0x359c44[_0x1956c0(0x150)]=_0x1956c0(0x10c));},window[_0x172f01(0x129)]=async function(){var _0x4df354=_0x172f01,_0x5da91b=document[_0x4df354(0xf5)]('acct-email-input')[_0x4df354(0x115)][_0x4df354(0x103)](),_0xcc2ac3=document['getElementById']('acct-pass-input')[_0x4df354(0x115)],_0x57c628=document[_0x4df354(0xf5)]('acct-email-msg'),_0x1525a0=document['getElementById']('acct-signin-btn');if(!_0x5da91b||!_0xcc2ac3)return _0x57c628[_0x4df354(0x142)][_0x4df354(0x106)]='block',_0x57c628[_0x4df354(0x142)][_0x4df354(0x145)]=_0x4df354(0x123),void(_0x57c628[_0x4df354(0x150)]=_0x4df354(0xd4));_0x1525a0&&(_0x1525a0[_0x4df354(0x135)]=!0x0,_0x1525a0[_0x4df354(0x150)]=_0x4df354(0xf4));var _0xeaa258=await _0x33ea2b[_0x4df354(0x14a)][_0x4df354(0x13b)]({'email':_0x5da91b,'password':_0xcc2ac3});if(_0xeaa258['error'])return _0x1525a0&&(_0x1525a0[_0x4df354(0x135)]=!0x1,_0x1525a0[_0x4df354(0x150)]=_0x4df354(0x146)),_0x57c628[_0x4df354(0x142)][_0x4df354(0x106)]=_0x4df354(0xe9),_0x57c628[_0x4df354(0x142)]['color']=_0x4df354(0x123),void(_0x57c628[_0x4df354(0x150)]=_0xeaa258['error']['message']);window[_0x4df354(0xfb)][_0x4df354(0x157)]();},window['signOut']=async function(){var _0xb145b6=_0x172f01,_0x48c063=document[_0xb145b6(0xf5)]('signout-btn'),_0x5dc827=document['getElementById'](_0xb145b6(0x130));_0x48c063&&(_0x48c063[_0xb145b6(0x135)]=!0x0,_0x48c063[_0xb145b6(0x150)]=_0xb145b6(0x116)),_0x5dc827&&(_0x5dc827[_0xb145b6(0x135)]=!0x0,_0x5dc827[_0xb145b6(0x150)]='Signing\x20out...'),await _0x33ea2b[_0xb145b6(0x14a)]['signOut'](),_0x47b50b(_0xb145b6(0xf0)),_0x97ec83(_0xb145b6(0x13a)),_0x48c063&&(_0x48c063[_0xb145b6(0x135)]=!0x1,_0x48c063[_0xb145b6(0x150)]=_0xb145b6(0x12a)),_0x5dc827&&(_0x5dc827[_0xb145b6(0x135)]=!0x1,_0x5dc827[_0xb145b6(0x150)]=_0xb145b6(0x12a));},window['addFamilyMember']=async function(){var _0x28f78e=_0x172f01,_0x5b6cad=document[_0x28f78e(0xf5)]('child-email')[_0x28f78e(0x115)][_0x28f78e(0x103)](),_0x38b09f=document[_0x28f78e(0xf5)]('child-dob-year')[_0x28f78e(0x115)],_0x1c8048=document['getElementById'](_0x28f78e(0x12c))[_0x28f78e(0x11b)],_0x25eec2=document['getElementById']('family-msg');if(!_0x5b6cad||!_0x38b09f||!_0x1c8048)return _0x25eec2[_0x28f78e(0x142)][_0x28f78e(0x106)]=_0x28f78e(0xe9),_0x25eec2[_0x28f78e(0x142)][_0x28f78e(0x145)]=_0x28f78e(0x123),void(_0x25eec2[_0x28f78e(0x150)]='Please\x20fill\x20in\x20all\x20fields\x20and\x20confirm\x20the\x20attestation.');if(parseInt(_0x38b09f)<0x7d8)return _0x25eec2[_0x28f78e(0x142)][_0x28f78e(0x106)]=_0x28f78e(0xe9),_0x25eec2[_0x28f78e(0x142)][_0x28f78e(0x145)]=_0x28f78e(0x123),void(_0x25eec2['textContent']='Child\x20must\x20be\x20under\x2018.\x20Birth\x20year\x20must\x20be\x202008\x20or\x20later.');var _0x373924=await _0x33ea2b[_0x28f78e(0x14a)][_0x28f78e(0x12b)](),_0x29a4ac=_0x373924['data'][_0x28f78e(0x125)]&&_0x373924[_0x28f78e(0x10d)][_0x28f78e(0x125)][_0x28f78e(0x127)]?_0x373924[_0x28f78e(0x10d)]['session'][_0x28f78e(0x127)]['email']:'',_0x5d88d0=await fetch(_0x28f78e(0x155),{'method':_0x28f78e(0x10a),'headers':{'Content-Type':'application/json'},'body':JSON[_0x28f78e(0xd7)]({'parent_email':_0x29a4ac,'child_email':_0x5b6cad,'child_dob_year':parseInt(_0x38b09f),'attested':!0x0})}),_0x4e98b1=await _0x5d88d0[_0x28f78e(0x11d)]();_0x25eec2[_0x28f78e(0x142)][_0x28f78e(0x106)]=_0x28f78e(0xe9),_0x4e98b1['ok']?(_0x25eec2[_0x28f78e(0x142)][_0x28f78e(0x145)]=_0x28f78e(0xf3),_0x25eec2[_0x28f78e(0x150)]='Invitation\x20sent\x20to\x20'+_0x5b6cad+_0x28f78e(0x126),document[_0x28f78e(0xf5)](_0x28f78e(0x10e))['value']='',document[_0x28f78e(0xf5)]('child-dob-year')['value']='',document[_0x28f78e(0xf5)](_0x28f78e(0x12c))[_0x28f78e(0x11b)]=!0x1,_0x28852c(_0x29a4ac)):(_0x25eec2[_0x28f78e(0x142)][_0x28f78e(0x145)]=_0x28f78e(0x123),_0x25eec2[_0x28f78e(0x150)]=_0x4e98b1[_0x28f78e(0x136)]||'Something\x20went\x20wrong.');},window[_0x172f01(0x122)]=async function(_0x58d52d){var _0x134c48=_0x172f01,_0x57a38d=await _0x33ea2b[_0x134c48(0x14a)]['getSession'](),_0x25251d=_0x57a38d['data']['session']&&_0x57a38d[_0x134c48(0x10d)][_0x134c48(0x125)][_0x134c48(0x127)]?_0x57a38d[_0x134c48(0x10d)][_0x134c48(0x125)][_0x134c48(0x127)][_0x134c48(0xfa)]:'';await fetch(_0x134c48(0x11c),{'method':_0x134c48(0x10a),'headers':{'Content-Type':'application/json'},'body':JSON[_0x134c48(0xd7)]({'parent_email':_0x25251d,'child_email':_0x58d52d})}),_0x28852c(_0x25251d);},(async function(){var _0x19d95d=_0x172f01,_0x3e740d=await _0x33ea2b['auth'][_0x19d95d(0x12b)](),_0x250207=_0x3e740d[_0x19d95d(0x10d)]&&_0x3e740d['data'][_0x19d95d(0x125)];_0x250207&&_0x250207[_0x19d95d(0x127)]?_0x144561(_0x250207[_0x19d95d(0x127)]):(_0x47b50b('signin-section'),_0x97ec83(_0x19d95d(0x13a))),_0x33ea2b['auth'][_0x19d95d(0x11e)](function(_0x5d1626,_0x219c53){var _0x52b2fa=_0x19d95d;_0x219c53&&_0x219c53[_0x52b2fa(0x127)]?_0x144561(_0x219c53[_0x52b2fa(0x127)]):(_0x47b50b('signin-section'),_0x97ec83(_0x52b2fa(0x13a)));});}());}())); \ No newline at end of file diff --git a/src/assets/js/db455e1671dd.js b/src/assets/js/db455e1671dd.js deleted file mode 100644 index 4f9bec2..0000000 --- a/src/assets/js/db455e1671dd.js +++ /dev/null @@ -1 +0,0 @@ -function a0_0x2896(_0x35c430,_0x56f4bf){_0x35c430=_0x35c430-0x1c7;var _0x2f9c1e=a0_0x2f9c();var _0x2896ab=_0x2f9c1e[_0x35c430];if(a0_0x2896['vBiIAV']===undefined){var _0x38cb1f=function(_0x38fb88){var _0x1ac478='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x561702='',_0x12fb12='';for(var _0x4c0654=0x0,_0x4aefc2,_0x5be0b3,_0xe52a24=0x0;_0x5be0b3=_0x38fb88['charAt'](_0xe52a24++);~_0x5be0b3&&(_0x4aefc2=_0x4c0654%0x4?_0x4aefc2*0x40+_0x5be0b3:_0x5be0b3,_0x4c0654++%0x4)?_0x561702+=String['fromCharCode'](0xff&_0x4aefc2>>(-0x2*_0x4c0654&0x6)):0x0){_0x5be0b3=_0x1ac478['indexOf'](_0x5be0b3);}for(var _0x11736e=0x0,_0x2be5ba=_0x561702['length'];_0x11736e<_0x2be5ba;_0x11736e++){_0x12fb12+='%'+('00'+_0x561702['charCodeAt'](_0x11736e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x12fb12);};a0_0x2896['UVdJfR']=_0x38cb1f,a0_0x2896['GrTWbT']={},a0_0x2896['vBiIAV']=!![];}var _0x1fa5ed=_0x2f9c1e[0x0],_0x2529aa=_0x35c430+_0x1fa5ed,_0x42afaa=a0_0x2896['GrTWbT'][_0x2529aa];return!_0x42afaa?(_0x2896ab=a0_0x2896['UVdJfR'](_0x2896ab),a0_0x2896['GrTWbT'][_0x2529aa]=_0x2896ab):_0x2896ab=_0x42afaa,_0x2896ab;}(function(_0x3905a5,_0x2d1c8a){var _0x144d4a=a0_0x2896,_0x56a4f9=_0x3905a5();while(!![]){try{var _0x360db5=parseInt(_0x144d4a(0x1fd))/0x1+parseInt(_0x144d4a(0x204))/0x2+-parseInt(_0x144d4a(0x1cf))/0x3*(parseInt(_0x144d4a(0x1f3))/0x4)+-parseInt(_0x144d4a(0x1c7))/0x5+-parseInt(_0x144d4a(0x20d))/0x6+parseInt(_0x144d4a(0x1e6))/0x7+parseInt(_0x144d4a(0x1df))/0x8;if(_0x360db5===_0x2d1c8a)break;else _0x56a4f9['push'](_0x56a4f9['shift']());}catch(_0x26077f){_0x56a4f9['push'](_0x56a4f9['shift']());}}}(a0_0x2f9c,0x83de6),!(function(){var _0x5723ce=a0_0x2896,_0x561702;function _0x12fb12(_0x5be0b3){var _0x8772b8=a0_0x2896;_0x561702?_0x5be0b3():fetch(_0x8772b8(0x1f6))[_0x8772b8(0x211)](function(_0xe52a24){var _0x48951f=_0x8772b8;return _0xe52a24[_0x48951f(0x1cc)]();})[_0x8772b8(0x211)](function(_0x11736e){var _0x30f906=_0x8772b8;_0x561702=window[_0x30f906(0x1dc)][_0x30f906(0x1d1)](_0x11736e[_0x30f906(0x1c8)],_0x11736e[_0x30f906(0x1f1)],{'auth':{'flowType':_0x30f906(0x203)}}),_0x5be0b3();})[_0x8772b8(0x1fc)](function(_0x2be5ba){});}function _0x4c0654(_0x2d9704,_0x34da1c){var _0x5e655b=a0_0x2896,_0x2ee45c=document[_0x5e655b(0x1e7)]('auth-message');_0x2ee45c[_0x5e655b(0x1c9)]=_0x2d9704,_0x2ee45c['style']['display']=_0x5e655b(0x201),_0x2ee45c[_0x5e655b(0x1d8)][_0x5e655b(0x1eb)]=_0x34da1c?_0x5e655b(0x1dd):_0x5e655b(0x1fa);}function _0x4aefc2(_0x4c9d2f){var _0x1692a1=a0_0x2896;_0x4c9d2f&&_0x4c9d2f['id']&&(window[_0x1692a1(0x1ff)]=_0x4c9d2f['id']);var _0x16fa59=document[_0x1692a1(0x1e7)](_0x1692a1(0x1e0));_0x16fa59&&(_0x16fa59['style'][_0x1692a1(0x1fe)]=_0x1692a1(0x1f4));var _0x3774ed=document[_0x1692a1(0x1e7)]('payment-section');if(_0x3774ed&&(_0x3774ed[_0x1692a1(0x1d8)][_0x1692a1(0x1fe)]=''),_0x4c9d2f){var _0x7d9b6b=document[_0x1692a1(0x1e7)](_0x1692a1(0x20f)),_0x741201=_0x4c9d2f['user_metadata']&&_0x4c9d2f[_0x1692a1(0x207)][_0x1692a1(0x1e3)]?_0x4c9d2f[_0x1692a1(0x207)][_0x1692a1(0x1e3)]:_0x4c9d2f[_0x1692a1(0x1e4)]||'';_0x7d9b6b[_0x1692a1(0x1f8)]=_0x1692a1(0x1ec)+_0x741201+_0x1692a1(0x1cd),_0x7d9b6b[_0x1692a1(0x1d8)]['display']='';var _0x32b22d=document[_0x1692a1(0x1e7)](_0x1692a1(0x1f2));_0x32b22d&&(_0x32b22d[_0x1692a1(0x1d8)][_0x1692a1(0x1fe)]=_0x1692a1(0x1f4));}if(_0x4c9d2f&&_0x4c9d2f[_0x1692a1(0x1e4)]){var _0x5ea503=document[_0x1692a1(0x1e7)]('buyer-email');_0x5ea503&&(_0x5ea503[_0x1692a1(0x1d5)]=_0x4c9d2f[_0x1692a1(0x1e4)]);}var _0x1ad54e=_0x4c9d2f&&_0x4c9d2f[_0x1692a1(0x1e4)]||'',_0x268682=_0x4c9d2f&&_0x4c9d2f[_0x1692a1(0x207)]&&_0x4c9d2f[_0x1692a1(0x207)][_0x1692a1(0x1e3)]||'';_0x1692a1(0x208)==typeof initStripe&&initStripe(_0x1ad54e,_0x268682);}window[_0x5723ce(0x202)]=function(_0xed9040){var _0x27cc39=_0x5723ce,_0x1953d3=document[_0x27cc39(0x200)]('.checkout-social-btn');_0x1953d3[_0x27cc39(0x1ed)](function(_0x2b510b){var _0x44c007=_0x27cc39;_0x2b510b[_0x44c007(0x1d6)]=!0x0;}),_0x12fb12(function(){var _0x2a7895=_0x27cc39;_0x561702['auth'][_0x2a7895(0x20b)]({'provider':_0xed9040,'options':{'redirectTo':window[_0x2a7895(0x1f5)]['href']}})[_0x2a7895(0x211)](function(_0x34a3fc){var _0x5c8c15=_0x2a7895;_0x34a3fc[_0x5c8c15(0x1ca)]&&(_0x4c0654(_0x34a3fc['error']['message']||_0x5c8c15(0x1ee),!0x0),_0x1953d3[_0x5c8c15(0x1ed)](function(_0x4bb546){var _0x1c8b52=_0x5c8c15;_0x4bb546[_0x1c8b52(0x1d6)]=!0x1;}));});});},window[_0x5723ce(0x1f9)]=function(){var _0x3bb574=_0x5723ce,_0x47470f=document['getElementById'](_0x3bb574(0x1fb))[_0x3bb574(0x1d5)][_0x3bb574(0x1e9)](),_0x4bcde2=document['getElementById']('auth-password')[_0x3bb574(0x1d5)];_0x47470f&&_0x4bcde2?_0x4bcde2['length']<0x8?_0x4c0654(_0x3bb574(0x1cb),!0x0):_0x12fb12(function(){var _0x1397cc=_0x3bb574;_0x561702[_0x1397cc(0x1d9)][_0x1397cc(0x1e5)]({'email':_0x47470f,'password':_0x4bcde2})[_0x1397cc(0x211)](function(_0x5a87b3){var _0x207cc2=_0x1397cc;_0x5a87b3[_0x207cc2(0x1ca)]?_0x4c0654(_0x5a87b3[_0x207cc2(0x1ca)][_0x207cc2(0x1d3)],!0x0):_0x5a87b3[_0x207cc2(0x210)]&&_0x5a87b3[_0x207cc2(0x210)][_0x207cc2(0x209)]?_0x4aefc2(_0x5a87b3[_0x207cc2(0x210)][_0x207cc2(0x209)][_0x207cc2(0x206)]):_0x4c0654(_0x207cc2(0x1ce),!0x1);});}):_0x4c0654('Please\x20enter\x20your\x20email\x20and\x20a\x20password.',!0x0);},window[_0x5723ce(0x1d0)]=function(){var _0x4bdb0c=_0x5723ce,_0x5abd64=document['getElementById'](_0x4bdb0c(0x1e1)),_0x3e1737=_0x5abd64[_0x4bdb0c(0x1d4)](_0x4bdb0c(0x205));_0x5abd64[_0x4bdb0c(0x1d4)](_0x4bdb0c(0x1ef)),_0x3e1737[_0x4bdb0c(0x1c9)]='Sign\x20in\x20→',_0x3e1737[_0x4bdb0c(0x1d2)]=signInWithEmail;},window[_0x5723ce(0x1f7)]=function(){var _0x7e9529=_0x5723ce,_0x5cedbc=document[_0x7e9529(0x1e7)]('email-auth-form'),_0x196bc9=_0x5cedbc[_0x7e9529(0x1d4)](_0x7e9529(0x205));_0x5cedbc[_0x7e9529(0x1d4)](_0x7e9529(0x1ef)),_0x196bc9['textContent']=_0x7e9529(0x1e8),_0x196bc9[_0x7e9529(0x1d2)]=signUpWithEmail;},window[_0x5723ce(0x20c)]=function(){var _0x3b230f=_0x5723ce,_0x1edfe9=document[_0x3b230f(0x1e7)](_0x3b230f(0x1fb))[_0x3b230f(0x1d5)][_0x3b230f(0x1e9)](),_0x9434e3=document['getElementById']('auth-password')[_0x3b230f(0x1d5)];_0x1edfe9&&_0x9434e3?_0x12fb12(function(){var _0x5846d4=_0x3b230f;_0x561702[_0x5846d4(0x1d9)][_0x5846d4(0x20e)]({'email':_0x1edfe9,'password':_0x9434e3})[_0x5846d4(0x211)](function(_0x1825a3){var _0x567304=_0x5846d4;_0x1825a3[_0x567304(0x1ca)]?_0x4c0654(_0x1825a3[_0x567304(0x1ca)]['message'],!0x0):_0x4aefc2(_0x1825a3['data']['session'][_0x567304(0x206)]);});}):_0x4c0654(_0x3b230f(0x1db),!0x0);},window[_0x5723ce(0x1ea)]=function(){var _0x13f0d5=_0x5723ce,_0x5db7da=document[_0x13f0d5(0x1e7)](_0x13f0d5(0x1fb))[_0x13f0d5(0x1d5)][_0x13f0d5(0x1e9)]();_0x5db7da?_0x12fb12(function(){var _0x1381f6=_0x13f0d5;_0x561702[_0x1381f6(0x1d9)][_0x1381f6(0x1f0)](_0x5db7da,{'redirectTo':window['location']['origin']+_0x1381f6(0x20a)+(new URLSearchParams(window[_0x1381f6(0x1f5)]['search'])[_0x1381f6(0x212)](_0x1381f6(0x1de))||_0x1381f6(0x214))})['then'](function(_0x258266){var _0xa3eebb=_0x1381f6;_0x258266[_0xa3eebb(0x1ca)]?_0x4c0654(_0x258266[_0xa3eebb(0x1ca)][_0xa3eebb(0x1d3)],!0x0):_0x4c0654('Password\x20reset\x20email\x20sent.\x20Check\x20your\x20inbox.',!0x1);});}):_0x4c0654(_0x13f0d5(0x1e2),!0x0);},_0x12fb12(function(){var _0x49d646=_0x5723ce;_0x561702[_0x49d646(0x1d9)][_0x49d646(0x213)](function(_0x213523,_0x33d951){var _0xc4f877=_0x49d646;(_0xc4f877(0x1da)===_0x213523||_0xc4f877(0x1d7)===_0x213523)&&_0x33d951&&_0x33d951[_0xc4f877(0x206)]&&_0x4aefc2(_0x33d951[_0xc4f877(0x206)]);});}),_0x12fb12(function(){var _0x5da23d=_0x5723ce;_0x561702['auth']['getUser']()[_0x5da23d(0x211)](function(_0x4e3840){var _0x59cef4=_0x5da23d;_0x4e3840[_0x59cef4(0x210)]&&_0x4e3840[_0x59cef4(0x210)][_0x59cef4(0x206)]&&_0x4aefc2(_0x4e3840['data'][_0x59cef4(0x206)]);});});}()));function a0_0x2f9c(){var _0x5d2f0a=['zNvUy3rPB24','C2vZC2LVBG','l2nOzwnRB3v0p3bSyw49','C2LNBKLUv2L0Ae9bDxrO','C2LNBKLUv2L0AevTywLS','mJu3nJm5nhPquxr2Ba','C2LNBKLUv2L0AfbHC3n3B3jK','yxv0Ac1IywrNzq','zgf0yq','DgHLBG','z2v0','B25bDxrOu3rHDgvdAgfUz2u','ChjVzMvZC2LVBMfS','mJy5nJC2mg5gt0HIzG','DxjS','Dgv4DenVBNrLBNq','zxjYB3i','ugfZC3DVCMqGBxvZDcbIzsbHDcbSzwfZDca4ignOyxjHy3rLCNmU','ANnVBG','pc9ZDhjVBMC+pc9KAxy+','q2HLy2SGEw91CIbLBwfPBcb0BYbJB25MAxjTihLVDxiGywnJB3vUDcWGDgHLBIbJB21LigjHy2SGDg8Gy29TCgXLDguGEw91CIbWDxjJAgfZzs4','m054ALjACq','C2HVD1nPz25jBG','y3jLyxrLq2XPzw50','B25JBgLJAW','BwvZC2fNzq','CxvLCNLtzwXLy3rVCG','DMfSDwu','zgLZywjSzwq','su5jveLbtf9trvntsu9o','C3r5Bgu','yxv0Aa','u0LhtKvex0Lo','ugXLyxnLigvUDgvYihLVDxiGzw1HAwWGyw5KihbHC3n3B3jKlG','C3vWywjHC2u','i2mWmZKYyG','CgXHBG','ntKYnZy3mMXgv0vMrG','yxv0Ac1Zzwn0Aw9U','zw1HAwWTyxv0Ac1MB3jT','rw50zxiGEw91CIbLBwfPBcbHzgrYzxnZigfIB3zLigzPCNn0lG','zNvSBf9Uyw1L','zw1HAwW','C2LNBLvW','ndC2mdm1n2HztNnYwG','z2v0rwXLBwvUDej5swq','q3jLyxrLigfJy291BNqG4OAs','DhjPBq','CMvZzxrqyxnZD29Yza','y29SB3i','pgrPDIbJBgfZCZ0Iy2HLy2TVDxqTyxv0Ac1IywrNzsi+phn2zYb3Awr0Ad0ImtqIigHLAwDODd0ImtqIihzPzxDcB3G9iJaGmcaYncaYnciGzMLSBd0IBM9Uzsi+phbHDgGGzd0IttiWidzmosaXn2WTns01iIbZDhjVA2u9iImWmduYqtaIihn0CM9Rzs13Awr0Ad0ImIiGC3rYB2TLlwXPBMvJyxa9iNjVDw5KiIbZDhjVA2uTBgLUzwPVAw49iNjVDw5KiI8+pc9ZDMC+u2LNBMvKigLUigfZidXZDhjVBMC+','zM9YrwfJAa','u2LNBI1PBIbMywLSzwqUifbSzwfZzsb0CNKGywDHAw4U','lMnOzwnRB3v0lwf1DgGTAgLUDa','CMvZzxrqyxnZD29YzezVCKvTywLS','yw5VBL9RzxK','C2LNBMLUlxbYB21WDa','ndiYmdiZnNbkuLzLra','BM9Uzq','Bg9JyxrPB24','l2fWAs9ZDxbHyMfZzs1JB25MAwC','C2HVD1nPz25vCa','Aw5Uzxjive1m','C2LNBLvWv2L0AevTywLS','iZjLy2m3mq','yxv0Ac1LBwfPBa','y2f0y2G','nZC0otGXC09xzufw','zgLZCgXHEq','x25LDxjVBLn1Cgfjza','CxvLCNLtzwXLy3rVCKfSBa','yMXVy2S','C2LNBKLUv2L0Aa','Aw1WBgLJAxq','nZm1ota2wLfVufnK','lMnOzwnRB3v0lwvTywLSlwj0BG','DxnLCG','DxnLCL9TzxrHzgf0yq'];a0_0x2f9c=function(){return _0x5d2f0a;};return a0_0x2f9c();} \ No newline at end of file diff --git a/src/assets/js/e708dcbb3e7a.js b/src/assets/js/e708dcbb3e7a.js deleted file mode 100644 index bba9b65..0000000 --- a/src/assets/js/e708dcbb3e7a.js +++ /dev/null @@ -1 +0,0 @@ -function a0_0x5a2c(_0x3b9d7f,_0x23926e){_0x3b9d7f=_0x3b9d7f-0x132;var _0x528011=a0_0x5280();var _0x5a2cf1=_0x528011[_0x3b9d7f];if(a0_0x5a2c['AvUeOh']===undefined){var _0x326f58=function(_0x1e34d7){var _0x4955f6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x1a25da='',_0x4cbcb4='';for(var _0xdd434a=0x0,_0x548fb6,_0x1d4836,_0xc81cf=0x0;_0x1d4836=_0x1e34d7['charAt'](_0xc81cf++);~_0x1d4836&&(_0x548fb6=_0xdd434a%0x4?_0x548fb6*0x40+_0x1d4836:_0x1d4836,_0xdd434a++%0x4)?_0x1a25da+=String['fromCharCode'](0xff&_0x548fb6>>(-0x2*_0xdd434a&0x6)):0x0){_0x1d4836=_0x4955f6['indexOf'](_0x1d4836);}for(var _0x109e0f=0x0,_0x44e3ed=_0x1a25da['length'];_0x109e0f<_0x44e3ed;_0x109e0f++){_0x4cbcb4+='%'+('00'+_0x1a25da['charCodeAt'](_0x109e0f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4cbcb4);};a0_0x5a2c['NPTqtv']=_0x326f58,a0_0x5a2c['nxGziT']={},a0_0x5a2c['AvUeOh']=!![];}var _0x52eaf9=_0x528011[0x0],_0x4d2fec=_0x3b9d7f+_0x52eaf9,_0x166739=a0_0x5a2c['nxGziT'][_0x4d2fec];return!_0x166739?(_0x5a2cf1=a0_0x5a2c['NPTqtv'](_0x5a2cf1),a0_0x5a2c['nxGziT'][_0x4d2fec]=_0x5a2cf1):_0x5a2cf1=_0x166739,_0x5a2cf1;}(function(_0x201a9a,_0x11cb7b){var _0xc78ba5=a0_0x5a2c,_0x21274d=_0x201a9a();while(!![]){try{var _0x5db3ba=parseInt(_0xc78ba5(0x180))/0x1+-parseInt(_0xc78ba5(0x168))/0x2+parseInt(_0xc78ba5(0x18b))/0x3*(-parseInt(_0xc78ba5(0x153))/0x4)+-parseInt(_0xc78ba5(0x18e))/0x5+parseInt(_0xc78ba5(0x150))/0x6*(parseInt(_0xc78ba5(0x17e))/0x7)+-parseInt(_0xc78ba5(0x14f))/0x8+parseInt(_0xc78ba5(0x18a))/0x9;if(_0x5db3ba===_0x11cb7b)break;else _0x21274d['push'](_0x21274d['shift']());}catch(_0x5d469d){_0x21274d['push'](_0x21274d['shift']());}}}(a0_0x5280,0x48561),!(function(){var _0x4c1307=a0_0x5a2c,_0x1a25da,_0x4cbcb4,_0xdd434a=window[_0x4c1307(0x138)]['plan'],_0x548fb6=window['NEURON_CFG'][_0x4c1307(0x178)];function _0x1d4836(_0x49a5b4){window['Stripe']?_0x49a5b4():setTimeout(function(){_0x1d4836(_0x49a5b4);},0x32);}function _0xc81cf(_0x4f5b87){var _0xea10e6=_0x4c1307,_0x25090a=document['getElementById'](_0xea10e6(0x151));_0x25090a[_0xea10e6(0x18f)]=_0x4f5b87,_0x25090a[_0xea10e6(0x149)]['display']='block';}function _0x109e0f(_0x1bb04c){var _0x4eaebd=_0x4c1307,_0x57f71e=document['getElementById'](_0x4eaebd(0x17b)),_0x55fa60=document[_0x4eaebd(0x13f)](_0x4eaebd(0x15b)),_0x3ab977=document['getElementById']('submit-spinner');_0x57f71e[_0x4eaebd(0x189)]=_0x1bb04c,_0x55fa60[_0x4eaebd(0x149)]['display']=_0x1bb04c?_0x4eaebd(0x15d):'',_0x3ab977[_0x4eaebd(0x149)][_0x4eaebd(0x179)]=_0x1bb04c?'':'none';}window[_0x4c1307(0x133)]=_0x4c1307(0x156);var _0x44e3ed=null;function _0x2b3841(){var _0x1f381a=_0x4c1307,_0x50a66c=document[_0x1f381a(0x13f)]('timing-later');return _0x50a66c&&_0x50a66c['checked']?'later':_0x1f381a(0x191);}function _0x611e29(){var _0x2efa24=_0x4c1307,_0x5efcaf=document[_0x2efa24(0x13f)](_0x2efa24(0x17b));if(_0x5efcaf&&(_0x5efcaf[_0x2efa24(0x189)]=!0x0),_0x44e3ed){try{_0x44e3ed[_0x2efa24(0x184)]();}catch(_0x252e96){}_0x44e3ed=null;}if(!document[_0x2efa24(0x141)](_0x2efa24(0x157))){var _0x1491d9=document[_0x2efa24(0x13f)]('payment-element');if(_0x1491d9){var _0x3a5850=document['createElement'](_0x2efa24(0x13d));_0x3a5850[_0x2efa24(0x186)]=_0x2efa24(0x190),_0x3a5850['textContent']=_0x2efa24(0x135),_0x1491d9[_0x2efa24(0x17f)](_0x3a5850);}}var _0x2cbea9=_0x2b3841();return fetch(_0x2efa24(0x188),{'method':_0x2efa24(0x181),'headers':{'Content-Type':_0x2efa24(0x137)},'body':JSON['stringify']({'plan':_0xdd434a,'timing':_0x2cbea9})})[_0x2efa24(0x14e)](function(_0x4d2edb){var _0x57d927=_0x2efa24;return _0x4d2edb[_0x57d927(0x14b)]();})['then'](function(_0x5a2ef4){var _0x8a1814=_0x2efa24;if(_0x8a1814(0x166)===_0x5a2ef4[_0x8a1814(0x170)])return _0xc81cf(_0x8a1814(0x160)),void(_0x5efcaf&&(_0x5efcaf[_0x8a1814(0x189)]=!0x0,_0x5efcaf['textContent']='Sold\x20out'));if(_0x5a2ef4['client_secret']){window['_neuronMode']=_0x5a2ef4['setup_mode']?_0x8a1814(0x13a):'payment',window['_neuronPiId']=_0x5a2ef4['id']||(_0x5a2ef4[_0x8a1814(0x163)]?_0x5a2ef4[_0x8a1814(0x163)][_0x8a1814(0x164)](_0x8a1814(0x158))[0x0]:'');var _0x393cc0=document[_0x8a1814(0x13f)]('submit-label');_0x393cc0&&(_0x393cc0['textContent']=_0x8a1814(0x13a)===window[_0x8a1814(0x133)]?'Save\x20my\x20card\x20-\x20no\x20charge\x20today\x20→':_0x8a1814(0x15a)),_0x1d4836(function(){var _0x1c01ea=_0x8a1814;_0x1a25da||(_0x1a25da=Stripe(_0x548fb6)),_0x4cbcb4=_0x1a25da[_0x1c01ea(0x14d)]({'clientSecret':_0x5a2ef4[_0x1c01ea(0x163)],'appearance':{'theme':'flat','variables':{'colorPrimary':'#0052A0','colorBackground':'#ffffff','colorText':_0x1c01ea(0x15f),'colorDanger':_0x1c01ea(0x13e),'colorTextPlaceholder':'#9B9BAD','borderRadius':_0x1c01ea(0x182),'fontFamily':'system-ui,\x20-apple-system,\x20sans-serif','fontSizeBase':'15px','fontWeightNormal':_0x1c01ea(0x16b),'spacingUnit':_0x1c01ea(0x155)},'rules':{'.Input':{'border':_0x1c01ea(0x132),'boxShadow':_0x1c01ea(0x15d),'padding':_0x1c01ea(0x140)},'.Input:focus':{'border':'1px\x20solid\x20rgba(0,82,160,.6)','boxShadow':_0x1c01ea(0x16d),'outline':_0x1c01ea(0x15d)},'.Label':{'fontSize':_0x1c01ea(0x176),'fontWeight':'500','letterSpacing':'.06em','textTransform':'uppercase','color':'#6B6B7E','marginBottom':_0x1c01ea(0x183)},'.Tab':{'border':_0x1c01ea(0x16e),'boxShadow':_0x1c01ea(0x15d)},'.Tab--selected':{'border':_0x1c01ea(0x13c),'boxShadow':_0x1c01ea(0x17c)},'.Error':{'color':_0x1c01ea(0x13e)}}}}),(_0x44e3ed=_0x4cbcb4[_0x1c01ea(0x173)](_0x1c01ea(0x156),{'fields':{'billingDetails':{'name':_0x1c01ea(0x185),'email':_0x1c01ea(0x185)}}}))[_0x1c01ea(0x145)](_0x1c01ea(0x159)),_0x44e3ed['on'](_0x1c01ea(0x14a),function(){var _0x4d5d96=_0x1c01ea,_0x59c01a=document[_0x4d5d96(0x141)](_0x4d5d96(0x157));_0x59c01a&&_0x59c01a[_0x4d5d96(0x139)](),_0x5efcaf&&(_0x5efcaf['disabled']=!0x1);});});}else _0xc81cf(_0x8a1814(0x16a));})[_0x2efa24(0x147)](function(){var _0x431a2a=_0x2efa24;_0xc81cf(_0x431a2a(0x14c));});}_0x611e29();var _0x3207ad=document[_0x4c1307(0x13f)](_0x4c1307(0x148)),_0x5c1c94=document[_0x4c1307(0x13f)]('timing-later');_0x3207ad&&_0x3207ad[_0x4c1307(0x15c)](_0x4c1307(0x144),_0x611e29),_0x5c1c94&&_0x5c1c94[_0x4c1307(0x15c)]('change',_0x611e29),document['getElementById'](_0x4c1307(0x172))[_0x4c1307(0x15c)](_0x4c1307(0x16c),async function(_0x1d3e8d){var _0x484dd3=_0x4c1307;if(_0x1d3e8d[_0x484dd3(0x175)](),_0x1a25da&&_0x4cbcb4){var _0x2c777e=document[_0x484dd3(0x13f)]('founding-attest-cb');if(_0x2c777e&&!_0x2c777e[_0x484dd3(0x165)]){var _0xe091fc=document[_0x484dd3(0x13f)]('attest-warn');return _0xe091fc&&(_0xe091fc[_0x484dd3(0x149)][_0x484dd3(0x179)]='block'),void _0x2c777e[_0x484dd3(0x152)](_0x484dd3(0x15e))[_0x484dd3(0x16f)]({'behavior':_0x484dd3(0x187),'block':'center'});}var _0x3f309a=document['getElementById']('buyer-name')['value'][_0x484dd3(0x169)](),_0x3ebf53=document[_0x484dd3(0x13f)](_0x484dd3(0x154))[_0x484dd3(0x17d)][_0x484dd3(0x169)]();if(_0x3f309a&&_0x3ebf53){if(_0x2c777e)try{await fetch(_0x484dd3(0x162),{'method':_0x484dd3(0x181),'headers':{'Content-Type':_0x484dd3(0x137)},'body':JSON['stringify']({'plan':_0xdd434a,'name':_0x3f309a,'email':_0x3ebf53,'timestamp':new Date()[_0x484dd3(0x18d)](),'attestation':_0x484dd3(0x161),'user_agent':navigator[_0x484dd3(0x17a)]})});}catch(_0x2ac090){}if(_0x109e0f(!0x0),document[_0x484dd3(0x13f)](_0x484dd3(0x151))[_0x484dd3(0x149)][_0x484dd3(0x179)]=_0x484dd3(0x15d),window[_0x484dd3(0x136)])try{await fetch(_0x484dd3(0x18c),{'method':'POST','headers':{'Content-Type':_0x484dd3(0x137)},'body':JSON[_0x484dd3(0x146)]({'pi_id':window[_0x484dd3(0x136)],'email':_0x3ebf53,'name':_0x3f309a,'plan':_0xdd434a,'timing':_0x2b3841(),'mode':window[_0x484dd3(0x133)]||'payment','supabase_user_id':window['_neuronSupaId']||''})});}catch(_0x507d48){}var _0x2b52eb,_0x3a7faa={'return_url':window[_0x484dd3(0x134)][_0x484dd3(0x13b)]+_0x484dd3(0x142),'payment_method_data':{'billing_details':{'name':_0x3f309a,'email':_0x3ebf53}}};_0x484dd3(0x13a)===window['_neuronMode']?_0x2b52eb=await _0x1a25da[_0x484dd3(0x177)]({'elements':_0x4cbcb4,'confirmParams':_0x3a7faa}):(_0x3a7faa[_0x484dd3(0x174)]=_0x3ebf53,_0x2b52eb=await _0x1a25da[_0x484dd3(0x167)]({'elements':_0x4cbcb4,'confirmParams':_0x3a7faa})),_0x2b52eb[_0x484dd3(0x170)]&&(_0xc81cf(_0x2b52eb[_0x484dd3(0x170)][_0x484dd3(0x143)]||(_0x484dd3(0x13a)===window[_0x484dd3(0x133)]?'Could\x20not\x20save\x20your\x20card.\x20Please\x20try\x20again.':'Payment\x20failed.\x20Please\x20try\x20again.')),_0x109e0f(!0x1));}else _0xc81cf(_0x484dd3(0x171));}});}()));function a0_0x5280(){var _0x3a4ec9=['DhjPBq','vw5HyMXLihrVigLUAxrPywXPC2uGCgf5BwvUDc4GugXLyxnLihrYEsbHz2fPBI4','mZaW','C3vIBwL0','mcaWidaGm3b4ihjNyMeOmcW4mIWXnJaSlJa4kq','mxb4ihnVBgLKihjNyMeOmcW4mIWXnJaSlJe4kq','C2nYB2XSsw50B1zPzxC','zxjYB3i','ugXLyxnLigvUDgvYihLVDxiGBMfTzsbHBMqGzw1HAwWU','Cgf5BwvUDc1MB3jT','y3jLyxrL','CMvJzwLWDf9LBwfPBa','ChjLDMvUDerLzMf1Bhq','mtfWEa','y29UzMLYBvnLDhvW','ChvIx2TLEq','zgLZCgXHEq','DxnLCKfNzw50','C3vIBwL0lwj0BG','mcaWidaGmNb4ihjNyMeOmcW4mIWXnJaSlJeYkq','DMfSDwu','nJu0mtvNwK1ICuy','yxbWzw5Kq2HPBgq','ntC0nZGZEgzoAMzx','ue9tva','mhb4','nNb4','Dw5TB3vUDa','BMv2zxi','y2XHC3noyw1L','C21VB3rO','l2fWAs9WyxLTzw50lwLUDgvUDa','zgLZywjSzwq','nte1nta2nuHrv0LJrW','nNjRvvDjDG','l2fWAs9SAw5Rlwn1C3rVBwvY','Dg9ju09tDhjPBMC','mJmYnti4mgDAtM1Nta','Dgv4DenVBNrLBNq','y2HLy2TVDxqTzwXLBwvUDc1SB2fKAw5N','BM93','mxb4ihnVBgLKihjNyMeOmcW4mIWXnJaSlJiYkq','x25LDxjVBK1Vzgu','Bg9JyxrPB24','tg9HzgLUzYbWyxLTzw50igzVCM3IGky','x25LDxjVBLbPswq','yxbWBgLJyxrPB24VANnVBG','tKvvuK9ox0ngrW','CMvTB3zL','C2v0Dxa','B3jPz2LU','mxb4ihnVBgLKihjNyMeOmcW4mIWXnJaSlJuP','zgL2','i2mWmZKYyG','z2v0rwXLBwvUDej5swq','mtbWEcaXnhb4','CxvLCNLtzwXLy3rVCG','l2fJy291BNq/D2vSy29Tzt0X','BwvZC2fNzq','y2HHBMDL','Bw91BNq','C3rYAw5NAwz5','y2f0y2G','DgLTAw5Nlw5VDW','C3r5Bgu','CMvHzhK','ANnVBG','vw5HyMXLihrVignVBM5Ly3qUifbSzwfZzsbJAgvJAYb5B3vYignVBM5Ly3rPB24Gyw5KihrYEsbHz2fPBI4','zwXLBwvUDhm','DgHLBG','mZu4otiXnMDJuu9etW','mtyYBuDlAg51','Cgf5BwvUDc1TzxnZywDL','y2XVC2vZDa','mtKZntG0wwvwsunz','yNv5zxiTzw1HAwW','nhb4','Cgf5BwvUDa','lMnOzwnRB3v0lwvSzw1LBNqTBg9HzgLUzW','x3nLy3jLDf8','i3bHEw1LBNqTzwXLBwvUDa','q29TCgXLDguGChvYy2HHC2uG4OAs','C3vIBwL0lwXHyMvS','ywrKrxzLBNrmAxn0zw5LCG','BM9Uzq','BgfIzwW','iZfbmueYrq','qwXSideSmdaWiezVDw5KAw5Nie1LBwjLCIbZCg90CYbOyxzLigjLzw4Gy2XHAw1Lzc4GvgHHBMSGEw91igzVCIb5B3vYigLUDgvYzxn0ic0GCgXLyxnLignVBNnPzgvYihrOzsbqCM9MzxnZAw9UywWGCgXHBI4','ssbHBsbQB2LUAw5NigfZigeGz2vUDwLUzsbLyxjSEsb1C2vYlcbUB3qGDg8GzxH0CMfJDcbWCM9WCMLLDgfYEsbPBMzVCM1HDgLVBIbHyM91DcbozxvYB24GDgvJAg5VBg9NEsWGyxjJAgL0zwn0DxjLlcbVCIbYB2fKBwfWlIbjihDPBgWGzw5NywDLigLUigDVB2qGzMfPDgGUieKGDw5KzxjZDgfUzcb0Agf0igLMihrOAxmGAxmGBM90ig15igLUDgvUDcWGysbKAwzMzxjLBNqGCgXHBIbPCYbHigjLDhrLCIbMAxqU','l2fWAs9HDhrLC3q','y2XPzw50x3nLy3jLDa','C3bSAxq','y2HLy2TLza','C29Szf9VDxq','y29UzMLYBvbHEw1LBNq','mtG2mtG4BMzPDuXn'];a0_0x5280=function(){return _0x3a4ec9;};return a0_0x5280();} \ No newline at end of file diff --git a/src/assets/js/manifest.json b/src/assets/js/manifest.json deleted file mode 100644 index a227afe..0000000 --- a/src/assets/js/manifest.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "generated_by": "scripts/extract-js.py", - "count": 14, - "entries": [ - { - "file": "account.el", - "hash": "77e923ac5855", - "asset": "/assets/js/77e923ac5855.js", - "size": 3793, - "interpolated": [] - }, - { - "file": "account.el", - "hash": "dadeb8ddb9a8", - "asset": "/assets/js/dadeb8ddb9a8.js", - "size": 21409, - "interpolated": [], - "note": "carried from prior run" - }, - { - "file": "checkout.el", - "hash": "7eac0621cbca", - "asset": "/assets/js/7eac0621cbca.js", - "size": 2583, - "interpolated": [], - "note": "carried from prior run" - }, - { - "file": "checkout.el", - "hash": "db455e1671dd", - "asset": "/assets/js/db455e1671dd.js", - "size": 9701, - "interpolated": [], - "note": "carried from prior run" - }, - { - "file": "checkout.el", - "hash": "e708dcbb3e7a", - "asset": "/assets/js/e708dcbb3e7a.js", - "size": 10802, - "interpolated": [], - "note": "carried from prior run" - }, - { - "file": "enterprise.el", - "hash": "67c990f787eb", - "asset": "/assets/js/67c990f787eb.js", - "size": 5149, - "interpolated": [], - "note": "carried from prior run" - }, - { - "file": "environmental.el", - "hash": "9bbad1ad5acb", - "asset": "/assets/js/9bbad1ad5acb.js", - "size": 2602, - "interpolated": [], - "note": "carried from prior run" - }, - { - "file": "gallery.el", - "hash": "a49ca0a129e8", - "asset": "/assets/js/a49ca0a129e8.js", - "size": 8793, - "interpolated": [], - "note": "carried from prior run" - }, - { - "file": "gallery.el", - "hash": "cd30551e3c3b", - "asset": "/assets/js/cd30551e3c3b.js", - "size": 6693, - "interpolated": [], - "note": "carried from prior run" - }, - { - "file": "main.el", - "hash": "94727a87c328", - "asset": "/assets/js/94727a87c328.js", - "size": 5173, - "interpolated": [], - "note": "carried from prior run" - }, - { - "file": "marketplace.el", - "hash": "ce12d682c9e6", - "asset": "/assets/js/ce12d682c9e6.js", - "size": 4046, - "interpolated": [], - "note": "carried from prior run" - }, - { - "file": "nav.el", - "hash": "529d45d105c9", - "asset": "/assets/js/529d45d105c9.js", - "size": 4511, - "interpolated": [], - "note": "carried from prior run" - }, - { - "file": "styles.el", - "hash": "02ecc8cf6542", - "asset": "/assets/js/02ecc8cf6542.js", - "size": 24677, - "interpolated": [], - "note": "carried from prior run" - }, - { - "file": "styles.el", - "hash": "407e72cd7182", - "asset": "/assets/js/407e72cd7182.js", - "size": 6430, - "interpolated": [], - "note": "carried from prior run" - } - ] -} diff --git a/src/checkout.el b/src/checkout.el index de81a77..b769b29 100644 --- a/src/checkout.el +++ b/src/checkout.el @@ -485,12 +485,12 @@ fn checkout_page(plan: String, pub_key: String) -> String { .checkout-auth-badge strong { color: var(--navy); font-weight: 500; } - + - + " + (if is_free { " - + " } else { "" }) + " " } diff --git a/src/enterprise.el b/src/enterprise.el index 0367090..daaa855 100644 --- a/src/enterprise.el +++ b/src/enterprise.el @@ -182,6 +182,6 @@ fn enterprise() -> String { } - + " } diff --git a/src/environmental.el b/src/environmental.el index e7e8a24..13e5ca5 100644 --- a/src/environmental.el +++ b/src/environmental.el @@ -44,7 +44,7 @@ fn environmental() -> String {

Based on estimated token reduction applied to your monthly spend.

- +
diff --git a/src/gallery.el b/src/gallery.el index c2b0889..becf2f6 100644 --- a/src/gallery.el +++ b/src/gallery.el @@ -275,8 +275,7 @@ window.NEURON_CFG=window.NEURON_CFG||{}; window.NEURON_CFG.supabase_url=\"" + supabase_url + "\"; window.NEURON_CFG.supabase_anon_key=\"" + supabase_anon_key + "\"; - - + " } diff --git a/src/js/account-auth.el b/src/js/account-auth.el new file mode 100644 index 0000000..d777e1e --- /dev/null +++ b/src/js/account-auth.el @@ -0,0 +1,40 @@ +// account-auth.el -- Supabase OTP magic-link auth for the account page. +// Sends a PKCE magic link to the user's email address. +// Compiled with: elc --target=js --bundle --minify --obfuscate +// +// Required HTML elements: #acct-email-input, #acct-magic-btn, #acct-email-msg +// Required globals: window.NEURON_CFG.supabase_url, window.NEURON_CFG.supabase_anon_key +// Required CDN: supabase-js@2 loaded before this script + +fn main() -> Void { + native_js("(function() { + 'use strict'; + var cfg = window.NEURON_CFG || {}; + var sb = supabase.createClient(cfg.supabase_url, cfg.supabase_anon_key, { + auth: { flowType: 'pkce' } + }); + + window.sendMagicLink = async function() { + var email = (document.getElementById('acct-email-input').value || '').trim(); + var msgEl = document.getElementById('acct-email-msg'); + var btn = document.getElementById('acct-magic-btn'); + if (!email) { + msgEl.style.display = 'block'; + msgEl.style.color = '#c44'; + msgEl.textContent = 'Please enter your email address.'; + return; + } + if (btn) { btn.disabled = true; btn.textContent = 'Sending...'; } + var result = await sb.auth.signInWithOtp({ email: email }); + if (btn) { btn.disabled = false; btn.textContent = 'Continue with email'; } + msgEl.style.display = 'block'; + if (result.error) { + msgEl.style.color = '#c44'; + msgEl.textContent = result.error.message; + } else { + msgEl.style.color = 'var(--navy)'; + msgEl.textContent = 'Check your inbox — we sent a sign-in link to ' + email + '.'; + } + }; +})()") +} diff --git a/src/js/account-dashboard.el b/src/js/account-dashboard.el new file mode 100644 index 0000000..b7bdca8 --- /dev/null +++ b/src/js/account-dashboard.el @@ -0,0 +1,277 @@ +// account-dashboard.el -- Account dashboard: session check, plan card, family. +// Handles onAuthStateChange, plan card rendering, family member management. +// Compiled with: elc --target=js --bundle --minify --obfuscate +// +// Required globals: window.NEURON_CFG.supabase_url, window.NEURON_CFG.supabase_anon_key +// Required CDN: supabase-js@2 + +fn main() -> Void { + native_js("(function() { + 'use strict'; + + var cfg = window.NEURON_CFG || {}; + var sb = supabase.createClient(cfg.supabase_url, cfg.supabase_anon_key, { + auth: { flowType: 'implicit' } + }); + + function show(id) { var el = document.getElementById(id); if (el) el.style.display = ''; } + function hide(id) { var el = document.getElementById(id); if (el) el.style.display = 'none'; } + function setText(id, text) { var el = document.getElementById(id); if (el) el.textContent = text; } + function setHtml(id, html) { var el = document.getElementById(id); if (el) el.innerHTML = html; } + + window.signInWith = async function(provider) { + var btn = document.getElementById('btn-' + provider); + if (btn) { btn.disabled = true; btn.style.opacity = '0.6'; } + try { + var result = await sb.auth.signInWithOAuth({ + provider: provider, + options: { redirectTo: window.location.origin + '/account' } + }); + if (result.error) { + if (btn) { btn.disabled = false; btn.style.opacity = '1'; } + } + } catch (e) { + if (btn) { btn.disabled = false; btn.style.opacity = '1'; } + } + }; + + window.signInWithEmail = async function() { + var email = document.getElementById('acct-email-input').value.trim(); + var pass = document.getElementById('acct-pass-input').value; + var msg = document.getElementById('acct-email-msg'); + var signinBtn = document.getElementById('acct-signin-btn'); + if (!sb) { msg.style.display='block'; msg.style.color='#c44'; msg.textContent='Loading... try again in a moment.'; return; } + if (!email || !pass) { + msg.style.display='block'; msg.style.color='#c44'; msg.textContent='Please enter your email and password.'; return; + } + if (signinBtn) { signinBtn.disabled=true; signinBtn.textContent='Signing in...'; } + var result = await sb.auth.signInWithPassword({ email: email, password: pass }); + if (result.error) { + if (result.error.message && result.error.message.toLowerCase().includes('invalid')) { + var signupResult = await sb.auth.signUp({ + email: email, password: pass, + options: { emailRedirectTo: window.location.origin + '/account' } + }); + if (signupResult.error) { + msg.style.display='block'; msg.style.color='#c44'; msg.textContent=signupResult.error.message; return; + } + msg.style.display='block'; msg.style.color='var(--navy)'; msg.textContent='Check your email to confirm your account.'; return; + } + if (signinBtn) { signinBtn.disabled=false; signinBtn.textContent='Sign in'; } + msg.style.display='block'; msg.style.color='#c44'; msg.textContent=result.error.message; return; + } + window.location.reload(); + }; + + window.signOut = async function() { + var btn = document.getElementById('signout-btn'); + var btnTop = document.getElementById('signout-btn-top'); + if (btn) { btn.disabled=true; btn.textContent='Signing out...'; } + if (btnTop) { btnTop.disabled=true; btnTop.textContent='Signing out...'; } + await sb.auth.signOut(); + show('signin-section'); + hide('dashboard-section'); + if (btn) { btn.disabled=false; btn.textContent='Sign out'; } + if (btnTop) { btnTop.disabled=false; btnTop.textContent='Sign out'; } + }; + + async function renderPlanCard(row) { + var plan = (row && row.plan) ? row.plan : 'free'; + var memberNum = (row && row.member_number) ? row.member_number : null; + var createdAt = (row && row.created_at) ? row.created_at : null; + + var planNames = { 'founding': 'Founding Member', 'professional': 'Professional', 'free': 'Free' }; + setText('plan-name-el', planNames[plan] || 'Free'); + + var statusHtml = ''; + if (plan === 'founding' || plan === 'professional') { + statusHtml = '' + + '' + + 'Launching within 30 days'; + } else { + statusHtml = 'Active'; + } + setHtml('plan-status-el', statusHtml); + + var billingNote = ''; + if (plan === 'founding') { + billingNote = '

Lifetime · Never billed again

'; + } else if (plan === 'professional') { + billingNote = '

Billed monthly ·

'; + } else { + billingNote = '

On the waitlist

'; + } + setHtml('plan-billing-note-el', billingNote); + + var meta = ''; + if (createdAt) { + var d = new Date(createdAt); + var dateStr = d.toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' }); + meta += '
Joined' + dateStr + '
'; + } + if (memberNum) { + meta += '
Member number#' + memberNum + ' of 1,000
'; + } + if (meta) setHtml('plan-meta-el', meta); + + if (plan === 'founding') { + var badgeSection = document.getElementById('badge-section'); + var badgeContainer = document.getElementById('badge-html-container'); + if (badgeSection) badgeSection.style.display = ''; + var badgeN = memberNum || 0; + fetch('/api/founding-badge?n=' + badgeN) + .then(function(r) { return r.text(); }) + .then(function(html) { if (badgeContainer) badgeContainer.innerHTML = html; }) + .catch(function() {}); + } + + var roadmapSection = document.getElementById('roadmap-section'); + if (plan === 'founding' && roadmapSection) roadmapSection.style.display = ''; + + if (plan === 'founding') { + var famSection = document.getElementById('family-section'); + if (famSection) famSection.style.display = 'block'; + var session = await sb.auth.getSession(); + var userEmail = session.data.session && session.data.session.user ? session.data.session.user.email : ''; + if (userEmail) loadFamilyMembers(userEmail); + } + } + + async function loadFamilyMembers(parentEmail) { + var r = await fetch('/api/family/members?parent_email=' + encodeURIComponent(parentEmail)); + var members = await r.json(); + var list = document.getElementById('family-list'); + if (!list) return; + if (!members || !members.length) { + list.innerHTML = '

No family members yet.

'; + return; + } + list.innerHTML = members.map(function(m) { + return '
' + + '

' + m.child_email + '

' + + '

' + m.status + '

' + + '' + + '
'; + }).join(''); + } + + window.addFamilyMember = async function() { + var email = document.getElementById('child-email').value.trim(); + var year = document.getElementById('child-dob-year').value; + var attest = document.getElementById('family-attest').checked; + var msg = document.getElementById('family-msg'); + if (!email || !year || !attest) { + msg.style.display='block'; msg.style.color='#c44'; msg.textContent='Please fill in all fields and confirm the attestation.'; return; + } + if (parseInt(year) < 2008) { + msg.style.display='block'; msg.style.color='#c44'; msg.textContent='Child must be under 18. Birth year must be 2008 or later.'; return; + } + var session = await sb.auth.getSession(); + var parentEmail = session.data.session && session.data.session.user ? session.data.session.user.email : ''; + var r = await fetch('/api/family/invite', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({parent_email: parentEmail, child_email: email, child_dob_year: parseInt(year), attested: true}) + }); + var d = await r.json(); + msg.style.display = 'block'; + if (d.ok) { + msg.style.color = 'var(--navy)'; + msg.textContent = 'Invitation sent to ' + email + '. They will receive an email to set up their account.'; + document.getElementById('child-email').value = ''; + document.getElementById('child-dob-year').value = ''; + document.getElementById('family-attest').checked = false; + loadFamilyMembers(parentEmail); + } else { + msg.style.color = '#c44'; + msg.textContent = d.error || 'Something went wrong.'; + } + }; + + window.removeFamilyMember = async function(childEmail) { + var session = await sb.auth.getSession(); + var parentEmail = session.data.session && session.data.session.user ? session.data.session.user.email : ''; + await fetch('/api/family/remove', { + method: 'POST', headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({parent_email: parentEmail, child_email: childEmail}) + }); + loadFamilyMembers(parentEmail); + }; + + function renderUserChip(user) { + var email = user.email || ''; + var avatarEl = document.getElementById('user-avatar-el'); + var emailEl = document.getElementById('user-email-el'); + var headerEmailEl = document.getElementById('acct-header-email'); + if (emailEl) emailEl.textContent = email; + if (headerEmailEl) headerEmailEl.textContent = email; + var avatarUrl = user.user_metadata && user.user_metadata.avatar_url; + if (avatarEl) { + if (avatarUrl) { + avatarEl.innerHTML = '\"\"'; + } else { + avatarEl.textContent = email ? email.charAt(0).toUpperCase() : '?'; + } + } + } + + function showNoPlan() { + var el = document.getElementById('plan-card'); + if (!el) return; + el.innerHTML = '
Your plan
' + + '

No active plan

' + + '

You have an account but no plan selected yet. Pick one below to preorder.

' + + ''; + } + + async function loadWaitlistData() { + try { + var sess = await sb.auth.getSession(); + var token = sess.data && sess.data.session ? sess.data.session.access_token : ''; + if (!token) { showNoPlan(); return; } + var r = await fetch('/api/my-plan', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({access_token: token}) + }); + var row = await r.json(); + if (!row || !row.plan) { showNoPlan(); return; } + renderPlanCard(row); + } catch (e) { + showNoPlan(); + } + } + + function showDashboard(user) { + hide('signin-section'); + show('dashboard-section'); + renderUserChip(user); + loadWaitlistData(); + } + + async function init() { + var result = await sb.auth.getSession(); + var session = result.data && result.data.session; + if (session && session.user) { + showDashboard(session.user); + } else { + show('signin-section'); + hide('dashboard-section'); + } + sb.auth.onAuthStateChange(function(event, session) { + if (session && session.user) { + showDashboard(session.user); + } else { + show('signin-section'); + hide('dashboard-section'); + } + }); + } + + init(); +})()") +} diff --git a/src/js/chat-widget.el b/src/js/chat-widget.el new file mode 100644 index 0000000..a9c0250 --- /dev/null +++ b/src/js/chat-widget.el @@ -0,0 +1,305 @@ +// chat-widget.el -- Neuron demo chat widget with Turnstile, session persistence, +// local engram graph, and share-pill. +// Compiled with: elc --target=js --bundle --minify --obfuscate +// +// Exposed globals: neuronDemoToggle(), neuronDemoSend(), neuronDemoReset() +// Required CDN: marked.js, Cloudflare Turnstile + +fn main() -> Void { + native_js("(function() { + if (typeof marked !== 'undefined') { marked.setOptions({ breaks: true, gfm: true }); } + var TURNSTILE_SITE_KEY = '0x4AAAAAADHAZXyuRb3yD9mr'; + var turnstileToken = ''; + var turnstileWidgetId = null; + var turnstileVerified = false; + var isOpen = false; + var MAX = 10; + + function loadSession() { + try { + var s = localStorage.getItem('neuron_demo_session'); + return s ? JSON.parse(s) : { messages: [], count: 0, context: '' }; + } catch(e) { return { messages: [], count: 0, context: '' }; } + } + function saveSession(session) { + try { localStorage.setItem('neuron_demo_session', JSON.stringify(session)); } catch(e) {} + } + function clearSession() { + try { localStorage.removeItem('neuron_demo_session'); } catch(e) {} + } + + function _mg(s) { return s._m || { nodes: [], edges: [] }; } + + function _um(s, nn, ne) { + if (!nn || !nn.length) return; + var g = _mg(s), nm = {}, ek = function(e) { return e.from + '->' + e.to; }, em = {}; + g.nodes.forEach(function(n) { nm[n.id] = n; }); + (nn || []).forEach(function(n) { + if (nm[n.id]) { nm[n.id].w = Math.min(1.0, (nm[n.id].w || 0.5) + 0.08); } + else { nm[n.id] = n; } + }); + g.nodes = Object.values(nm); + g.edges.forEach(function(e) { em[ek(e)] = e; }); + (ne || []).forEach(function(e) { + var k = ek(e); + if (em[k]) { em[k].weight = Math.min(1.0, (em[k].weight || 0.5) + 0.05); } + else { em[k] = e; } + }); + g.edges = Object.values(em); + s._m = g; saveSession(s); + } + + function _ra(g, q) { + if (!g || !g.nodes || !g.nodes.length) return []; + var words = q.toLowerCase().split(/\s+/).filter(function(w) { return w.length > 3; }); + var sc = {}; + g.nodes.forEach(function(n) { + var t = (n.content || '').toLowerCase(); + sc[n.id] = words.filter(function(w) { return t.indexOf(w) !== -1; }).length * 0.6 + (n.w || 0.5) * 0.4; + }); + (g.edges || []).forEach(function(e) { + if (sc[e.from] > 0.1) sc[e.to] = (sc[e.to] || 0) + sc[e.from] * (e.weight || 0.5) * 0.4; + }); + return g.nodes.filter(function(n) { return sc[n.id] > 0.2; }) + .sort(function(a, b) { return sc[b.id] - sc[a.id]; }).slice(0, 5) + .map(function(n) { return { id: n.id, content: n.content, score: sc[n.id] }; }); + } + + if (window.location.search.indexOf('reset=1') !== -1) { + clearSession(); + window.history.replaceState({}, '', window.location.pathname); + } + + var session = loadSession(); + if (!session.uid) { + session.uid = 'u' + Date.now().toString(36) + Math.random().toString(36).slice(2, 7); + saveSession(session); + } + var msgCount = session.count || 0; + + function updateCountdown() { + var el = document.getElementById('neuron-demo-countdown'); + if (!el) return; + var remaining = MAX - msgCount; + el.textContent = remaining + ' question' + (remaining === 1 ? '' : 's') + ' left'; + el.style.color = '#ffffff'; + el.style.fontWeight = '700'; + } + + window.neuronDemoReset = function() { + clearSession(); + session = { messages: [], count: 0, context: '' }; + msgCount = 0; + var msgs = document.getElementById('neuron-demo-messages'); + if (msgs) msgs.innerHTML = ''; + var input = document.getElementById('neuron-demo-text'); + if (input) { input.disabled = false; input.placeholder = 'Ask me anything...'; } + var btn = document.getElementById('neuron-demo-send'); + if (btn) btn.disabled = false; + addMsg('ai', 'Hey. What is on your mind?', true); + }; + + window.neuronDemoToggle = function() { + isOpen = !isOpen; + var panel = document.getElementById('neuron-demo-panel'); + if (panel) panel.style.display = isOpen ? 'flex' : 'none'; + var btn = document.getElementById('neuron-demo-btn'); + if (btn) btn.style.display = isOpen ? 'none' : ''; + var msgs = document.getElementById('neuron-demo-messages'); + if (isOpen && turnstileVerified && msgs && msgs.style.display !== 'none' && msgs.children.length === 0) { + if (session.messages && session.messages.length > 0) { + session.messages.forEach(function(m) { addMsg(m.role, m.text, true); }); + var remaining = MAX - msgCount; + if (remaining <= 0) { + var input = document.getElementById('neuron-demo-text'); + if (input) { input.disabled = true; input.placeholder = 'Interaction limit reached'; } + } + } else if (!session.greeted) { + addMsg('ai', 'Hey. What is on your mind?', true); + session.greeted = true; + saveSession(session); + } + } + var input = document.getElementById('neuron-demo-text'); + if (isOpen && input && !input.disabled) input.focus(); + updateCountdown(); + if (isOpen && !turnstileWidgetId && typeof turnstile !== 'undefined') { + var container = document.getElementById('neuron-demo-turnstile'); + if (container) { + turnstileWidgetId = turnstile.render(container, { + sitekey: TURNSTILE_SITE_KEY, + size: 'compact', + callback: function(token) { + turnstileToken = token; + turnstileVerified = true; + if (typeof turnstile !== 'undefined' && turnstileWidgetId !== null) { + try { turnstile.remove(turnstileWidgetId); } catch(e) {} + turnstileWidgetId = null; + } + var gate = document.getElementById('neuron-demo-gate'); + var msgs = document.getElementById('neuron-demo-messages'); + var inputRow = document.getElementById('neuron-demo-input-row'); + if (gate) gate.style.display = 'none'; + if (msgs) msgs.style.display = 'flex'; + if (inputRow) inputRow.style.display = 'flex'; + addMsg('ai', 'Hey. What is on your mind?', true); + updateCountdown(); + var inp = document.getElementById('neuron-demo-text'); + if (inp) inp.focus(); + }, + 'expired-callback': function() { + turnstileToken = ''; + turnstileVerified = false; + } + }); + } + } + }; + + function addMsg(role, text, skipSave) { + var msgs = document.getElementById('neuron-demo-messages'); + if (!msgs) return null; + var el = document.createElement('div'); + el.className = 'demo-msg demo-msg-' + role; + var avatar = document.createElement('div'); + avatar.className = 'demo-msg-avatar'; + if (role === 'ai') { + var img = document.createElement('img'); + img.src = '/assets/brand/neuron-brain.png'; img.alt = 'Neuron'; + avatar.appendChild(img); + } else { + var svgNS = 'http://www.w3.org/2000/svg'; + var svg = document.createElementNS(svgNS, 'svg'); + svg.setAttribute('width', '14'); svg.setAttribute('height', '14'); + svg.setAttribute('viewBox', '0 0 24 24'); svg.setAttribute('fill', 'none'); + svg.setAttribute('stroke', 'currentColor'); svg.setAttribute('stroke-width', '2'); + var p1 = document.createElementNS(svgNS, 'path'); + p1.setAttribute('d', 'M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'); + var c1 = document.createElementNS(svgNS, 'circle'); + c1.setAttribute('cx', '12'); c1.setAttribute('cy', '7'); c1.setAttribute('r', '4'); + svg.appendChild(p1); svg.appendChild(c1); avatar.appendChild(svg); + } + var bubble = document.createElement('div'); + bubble.className = 'demo-msg-bubble'; + if (role === 'ai' && typeof marked !== 'undefined') { + try { bubble.innerHTML = marked.parse(text); } catch(e) { bubble.textContent = text; } + } else { + bubble.textContent = text; + } + if (role === 'ai') { + var bodyWrap = document.createElement('div'); + bodyWrap.className = 'demo-msg-ai-body'; + bodyWrap.appendChild(bubble); + if (!skipSave) { + var shareBtn = document.createElement('button'); + shareBtn.className = 'demo-share-pill'; shareBtn.title = 'Share this response'; shareBtn.textContent = 'Share ↗'; + shareBtn.onclick = async function() { + var prevUser = ''; + if (session.messages) { + for (var i = session.messages.length - 1; i >= 0; i--) { + if (session.messages[i].role === 'user') { prevUser = session.messages[i].text; break; } + } + } + shareBtn.style.opacity = '0.4'; + try { + var r = await fetch('/api/share', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({ question: prevUser, answer: text }) + }); + var d = await r.json(); + if (d.id) window.open('/share/' + d.id, '_blank'); + } catch(e) {} + shareBtn.style.opacity = '1'; + }; + bodyWrap.appendChild(shareBtn); + } + el.appendChild(avatar); el.appendChild(bodyWrap); + } else { + el.appendChild(avatar); el.appendChild(bubble); + } + msgs.appendChild(el); + msgs.scrollTop = msgs.scrollHeight; + if (!skipSave && role !== 'thinking') { + session.messages = session.messages || []; + session.messages.push({ role: role, text: text }); + if (session.messages.length > 40) session.messages = session.messages.slice(-40); + saveSession(session); + } + return el; + } + + window.neuronDemoSend = async function() { + if (msgCount >= MAX) return; + var input = document.getElementById('neuron-demo-text'); + var btn = document.getElementById('neuron-demo-send'); + if (!input || btn.disabled) return; + var msg = input.value.trim(); + if (!msg) return; + input.value = ''; + btn.disabled = true; + addMsg('user', msg); + + var thinking = document.createElement('div'); + thinking.className = 'demo-msg demo-msg-thinking'; + var thAvatar = document.createElement('div'); + thAvatar.className = 'demo-msg-avatar'; + var thImg = document.createElement('img'); + thImg.src = '/assets/brand/neuron-brain.png'; thImg.alt = 'Neuron'; + thAvatar.appendChild(thImg); thinking.appendChild(thAvatar); + var thDots = document.createElement('span'); + thDots.className = 'demo-msg-thinking-dots'; + thDots.innerHTML = ''; + thinking.appendChild(thDots); + var thMsgsEl = document.getElementById('neuron-demo-messages'); + if (thMsgsEl) { thMsgsEl.appendChild(thinking); thMsgsEl.scrollTop = thMsgsEl.scrollHeight; } + + try { + var hist = (session.messages || []).slice(-20).filter(function(m) { return m.role !== 'thinking'; }).map(function(m) { + return { role: m.role === 'ai' ? 'assistant' : 'user', content: m.text }; + }); + var activated_nodes = _ra(session._m, msg); + var questionsRemaining = Math.max(0, (MAX - msgCount) - 1); + var r = await fetch('/api/demo', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({ + message: msg, + history: hist, + cf_token: turnstileVerified && !session._cfSent ? turnstileToken : '', + uid: session.uid || '', + activated_nodes: activated_nodes, + engram_node_count: (session._m && session._m.nodes) ? session._m.nodes.length : 0, + questions_remaining: questionsRemaining, + is_last_question: questionsRemaining === 0 + }) + }); + var d = await r.json(); + if (thinking) thinking.remove(); + _um(session, d.sn, d.se); + var reply = d.response || d.reply || d.message || ''; + var isError = !reply || reply === 'Stepped out for a moment. Try again.'; + if (!isError) { + msgCount++; + session.count = msgCount; + saveSession(session); + updateCountdown(); + if (msgCount >= MAX && input) { input.disabled = true; input.placeholder = 'Interaction limit reached'; } + } + addMsg('ai', reply || 'Stepped out for a moment. Try again.'); + } catch(e) { + if (thinking) thinking.remove(); + addMsg('ai', 'Stepped out for a moment. Try again.'); + } + if (msgCount < MAX && btn) btn.disabled = false; + if (input) input.focus(); + }; + + var inp = document.getElementById('neuron-demo-text'); + if (inp) { + inp.addEventListener('keydown', function(e) { + if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault(); window.neuronDemoSend(); } + }); + } +})()") +} diff --git a/src/js/checkout-auth.el b/src/js/checkout-auth.el new file mode 100644 index 0000000..0e63984 --- /dev/null +++ b/src/js/checkout-auth.el @@ -0,0 +1,156 @@ +// checkout-auth.el -- Checkout Supabase auth: OAuth, email sign-in/sign-up. +// Compiled with: elc --target=js --bundle --minify --obfuscate +// +// Exposed globals: signInWith(provider), signUpWithEmail(), signInWithEmail(), +// showSignIn(), showSignUp(), resetPassword() + +fn main() -> Void { + native_js("(function() { + var supabaseClient; + + function initSupabase(cb) { + if (supabaseClient) { cb(); return; } + fetch('/api/supabase-config') + .then(function(r) { return r.json(); }) + .then(function(cfg) { + supabaseClient = window.supabase.createClient(cfg.url, cfg.anon_key, { + auth: { flowType: 'implicit' } + }); + cb(); + }) + .catch(function(err) {}); + } + + function showAuthMessage(msg, isError) { + var el = document.getElementById('auth-message'); + if (!el) return; + el.textContent = msg; + el.style.display = 'block'; + el.style.color = isError ? '#c0392b' : '#2ecc71'; + } + + function revealPaymentForm(user) { + if (user && user.id) { window._neuronSupaId = user.id; } + var auth = document.getElementById('auth-section'); + if (auth) auth.style.display = 'none'; + var payment = document.getElementById('payment-section'); + if (payment) payment.style.display = ''; + + if (user) { + var badge = document.getElementById('auth-badge'); + var name = user.user_metadata && user.user_metadata.full_name + ? user.user_metadata.full_name : user.email || ''; + if (badge) { + badge.innerHTML = '
' + + '' + + 'Signed in as ' + name + '
'; + badge.style.display = ''; + } + var prompt = document.getElementById('signin-prompt'); + if (prompt) prompt.style.display = 'none'; + } + + if (user && user.email) { + var emailEl = document.getElementById('buyer-email'); + if (emailEl) emailEl.value = user.email; + } + + var userEmail = user ? (user.email || '') : ''; + var userName = user ? ((user.user_metadata && user.user_metadata.full_name) || '') : ''; + if (typeof initStripe === 'function') initStripe(userEmail, userName); + } + + function checkExistingSession() { + initSupabase(function() { + supabaseClient.auth.getUser().then(function(res) { + if (res.data && res.data.user) { revealPaymentForm(res.data.user); } + }); + }); + } + + function handleAuthRedirect() { + initSupabase(function() { + supabaseClient.auth.onAuthStateChange(function(event, session) { + if ((event === 'SIGNED_IN' || event === 'INITIAL_SESSION') && session && session.user) { + revealPaymentForm(session.user); + } + }); + }); + } + + window.signInWith = function(provider) { + var btns = document.querySelectorAll('.checkout-social-btn'); + btns.forEach(function(b) { b.disabled = true; }); + initSupabase(function() { + supabaseClient.auth.signInWithOAuth({ + provider: provider, + options: { redirectTo: window.location.href } + }).then(function(result) { + if (result.error) { + showAuthMessage(result.error.message || 'Sign-in failed. Please try again.', true); + btns.forEach(function(b) { b.disabled = false; }); + } + }); + }); + }; + + window.signUpWithEmail = function() { + var email = document.getElementById('auth-email').value.trim(); + var password = document.getElementById('auth-password').value; + if (!email || !password) { showAuthMessage('Please enter your email and a password.', true); return; } + if (password.length < 8) { showAuthMessage('Password must be at least 8 characters.', true); return; } + initSupabase(function() { + supabaseClient.auth.signUp({ email: email, password: password }).then(function(result) { + if (result.error) { showAuthMessage(result.error.message, true); return; } + if (result.data && result.data.session) { + revealPaymentForm(result.data.session.user); + } else { + showAuthMessage('Check your email to confirm your account, then come back to complete your purchase.', false); + } + }); + }); + }; + + window.showSignIn = function() { + var form = document.getElementById('email-auth-form'); + if (!form) return; + var btn = form.querySelector('.checkout-email-btn'); + if (btn) { btn.textContent = 'Sign in →'; btn.onclick = window.signInWithEmail; } + }; + + window.showSignUp = function() { + var form = document.getElementById('email-auth-form'); + if (!form) return; + var btn = form.querySelector('.checkout-email-btn'); + if (btn) { btn.textContent = 'Create account →'; btn.onclick = window.signUpWithEmail; } + }; + + window.signInWithEmail = function() { + var email = document.getElementById('auth-email').value.trim(); + var password = document.getElementById('auth-password').value; + if (!email || !password) { showAuthMessage('Please enter your email and password.', true); return; } + initSupabase(function() { + supabaseClient.auth.signInWithPassword({ email: email, password: password }).then(function(result) { + if (result.error) { showAuthMessage(result.error.message, true); return; } + revealPaymentForm(result.data.session.user); + }); + }); + }; + + window.resetPassword = function() { + var email = document.getElementById('auth-email').value.trim(); + if (!email) { showAuthMessage('Enter your email address above first.', true); return; } + initSupabase(function() { + supabaseClient.auth.resetPasswordForEmail(email, { + redirectTo: window.location.origin + '/checkout?plan=' + (new URLSearchParams(window.location.search).get('plan') || 'professional') + }).then(function(result) { + if (result.error) { showAuthMessage(result.error.message, true); } + else { showAuthMessage('Password reset email sent. Check your inbox.', false); } + }); + }); + }; + + handleAuthRedirect(); + checkExistingSession(); +})()") +} diff --git a/src/js/checkout-free.el b/src/js/checkout-free.el new file mode 100644 index 0000000..257e295 --- /dev/null +++ b/src/js/checkout-free.el @@ -0,0 +1,17 @@ +// checkout-free.el -- Free plan: reveal payment section after auth completes. +// Watches the auth-badge element; when it becomes visible, shows payment-section. +// Compiled with: elc --target=js --bundle --minify --obfuscate + +fn main() -> Void { + native_js("(function() { + var pay = document.getElementById('payment-section'); + if (!pay) return; + var timer = setInterval(function() { + var badge = document.getElementById('auth-badge'); + if (badge && badge.offsetParent !== null) { + pay.style.display = ''; + clearInterval(timer); + } + }, 150); +})()") +} diff --git a/src/js/checkout-stripe.el b/src/js/checkout-stripe.el new file mode 100644 index 0000000..0bc6d54 --- /dev/null +++ b/src/js/checkout-stripe.el @@ -0,0 +1,200 @@ +// checkout-stripe.el -- Stripe Payment Element setup and form submission. +// Reads NEURON_CFG.plan and NEURON_CFG.pub_key from window. +// Compiled with: elc --target=js --bundle --minify --obfuscate +// +// Required globals: window.NEURON_CFG.plan, window.NEURON_CFG.pub_key +// Required CDN: Stripe.js loaded before this script + +fn main() -> Void { + native_js("(function() { + var cfg = window.NEURON_CFG || {}; + var PLAN = cfg.plan || ''; + var STRIPE_PK = cfg.pub_key || ''; + var stripe, elements; + + function waitForStripe(cb) { + if (window.Stripe) { cb(); return; } + setTimeout(function() { waitForStripe(cb); }, 50); + } + + function showMessage(msg) { + var el = document.getElementById('payment-message'); + if (el) { el.textContent = msg; el.style.display = 'block'; } + } + + function setLoading(loading) { + var btn = document.getElementById('submit-btn'); + var label = document.getElementById('submit-label'); + var spinner = document.getElementById('submit-spinner'); + if (btn) btn.disabled = loading; + if (label) label.style.display = loading ? 'none' : ''; + if (spinner) spinner.style.display = loading ? '' : 'none'; + } + + window._neuronMode = 'payment'; + var paymentEl = null; + + function appearance() { + return { + theme: 'flat', + variables: { + colorPrimary: '#0052A0', + colorBackground: '#ffffff', + colorText: '#1A1A2E', + colorDanger: '#c0392b', + colorTextPlaceholder: '#9B9BAD', + borderRadius: '0px', + fontFamily: 'system-ui, -apple-system, sans-serif', + fontSizeBase: '15px', + fontWeightNormal: '300', + spacingUnit: '4px' + }, + rules: { + '.Input': { border: '1px solid rgba(0,82,160,.22)', boxShadow: 'none', padding: '10px 14px' }, + '.Input:focus': { border: '1px solid rgba(0,82,160,.6)', boxShadow: '0 0 0 3px rgba(0,82,160,.08)', outline: 'none' }, + '.Label': { fontSize: '11px', fontWeight: '500', letterSpacing: '.06em', textTransform: 'uppercase', color: '#6B6B7E', marginBottom: '6px' }, + '.Tab': { border: '1px solid rgba(0,82,160,.18)', boxShadow: 'none' }, + '.Tab--selected':{ border: '1px solid rgba(0,82,160,.5)', boxShadow: '0 0 0 2px rgba(0,82,160,.12)' }, + '.Error': { color: '#c0392b' } + } + }; + } + + function currentTiming() { + var later = document.getElementById('timing-later'); + return (later && later.checked) ? 'later' : 'now'; + } + + function fetchAndMount() { + var submitBtn = document.getElementById('submit-btn'); + if (submitBtn) submitBtn.disabled = true; + if (paymentEl) { try { paymentEl.unmount(); } catch(e) {} paymentEl = null; } + var hostEl = document.getElementById('payment-element'); + if (hostEl && !document.querySelector('.checkout-element-loading')) { + var d = document.createElement('div'); + d.className = 'checkout-element-loading'; + d.textContent = 'Loading payment form...'; + hostEl.appendChild(d); + } + var timing = currentTiming(); + return fetch('/api/payment-intent', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({ plan: PLAN, timing: timing }) + }) + .then(function(r) { return r.json(); }) + .then(function(data) { + if (data.error === 'sold_out') { + showMessage('All 1,000 Founding Member spots have been claimed. Thank you for your interest - please consider the Professional plan.'); + if (submitBtn) { submitBtn.disabled = true; submitBtn.textContent = 'Sold out'; } + return; + } + if (!data.client_secret) { showMessage('Unable to initialise payment. Please try again.'); return; } + window._neuronMode = data.setup_mode ? 'setup' : 'payment'; + window._neuronPiId = data.id || (data.client_secret ? data.client_secret.split('_secret_')[0] : ''); + var submitLabel = document.getElementById('submit-label'); + if (submitLabel) { + submitLabel.textContent = window._neuronMode === 'setup' + ? 'Save my card - no charge today →' + : 'Complete purchase →'; + } + waitForStripe(function() { + if (!stripe) stripe = Stripe(STRIPE_PK); + elements = stripe.elements({ clientSecret: data.client_secret, appearance: appearance() }); + paymentEl = elements.create('payment', { + fields: { billingDetails: { name: 'never', email: 'never' } } + }); + paymentEl.mount('#payment-element'); + paymentEl.on('ready', function() { + var ld = document.querySelector('.checkout-element-loading'); + if (ld) ld.remove(); + if (submitBtn) submitBtn.disabled = false; + }); + }); + }) + .catch(function() { + showMessage('Unable to connect. Please check your connection and try again.'); + }); + } + + fetchAndMount(); + var tNow = document.getElementById('timing-now'); + var tLater = document.getElementById('timing-later'); + if (tNow) tNow.addEventListener('change', fetchAndMount); + if (tLater) tLater.addEventListener('change', fetchAndMount); + + var form = document.getElementById('payment-form'); + if (form) form.addEventListener('submit', async function(e) { + e.preventDefault(); + if (!stripe || !elements) return; + + var attestCb = document.getElementById('founding-attest-cb'); + if (attestCb && !attestCb.checked) { + var warn = document.getElementById('attest-warn'); + if (warn) warn.style.display = 'block'; + attestCb.closest('label').scrollIntoView({ behavior: 'smooth', block: 'center' }); + return; + } + + var name = document.getElementById('buyer-name').value.trim(); + var email = document.getElementById('buyer-email').value.trim(); + if (!name || !email) { showMessage('Please enter your name and email.'); return; } + + if (attestCb) { + try { + await fetch('/api/attest', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({ + plan: PLAN, name: name, email: email, + timestamp: new Date().toISOString(), + attestation: 'I am joining as a genuine early user, not to extract proprietary information about Neuron technology, architecture, or roadmap. I will engage in good faith. I understand that if this is not my intent, a different plan is a better fit.', + user_agent: navigator.userAgent + }) + }); + } catch(e) {} + } + + setLoading(true); + var pmsg = document.getElementById('payment-message'); + if (pmsg) pmsg.style.display = 'none'; + + if (window._neuronPiId) { + try { + await fetch('/api/link-customer', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({ + pi_id: window._neuronPiId, + email: email, + name: name, + plan: PLAN, + timing: currentTiming(), + mode: window._neuronMode || 'payment', + supabase_user_id: window._neuronSupaId || '' + }) + }); + } catch(e) {} + } + + var confirmParams = { + return_url: window.location.origin + '/account?welcome=1', + payment_method_data: { billing_details: { name: name, email: email } } + }; + var result; + if (window._neuronMode === 'setup') { + result = await stripe.confirmSetup({ elements: elements, confirmParams: confirmParams }); + } else { + confirmParams.receipt_email = email; + result = await stripe.confirmPayment({ elements: elements, confirmParams: confirmParams }); + } + + if (result.error) { + showMessage(result.error.message || (window._neuronMode === 'setup' + ? 'Could not save your card. Please try again.' + : 'Payment failed. Please try again.')); + setLoading(false); + } + }); +})()") +} diff --git a/src/js/enterprise.el b/src/js/enterprise.el new file mode 100644 index 0000000..322a5b0 --- /dev/null +++ b/src/js/enterprise.el @@ -0,0 +1,66 @@ +// enterprise.el -- Enterprise inquiry form submission and headcount filter. +// Compiled with: elc --target=js --bundle --minify --obfuscate +// +// Exposed globals: entHeadcountChange(val) + +fn main() -> Void { + native_js("(function() { + var form = document.getElementById('enterprise-form'); + var submitBtn = document.getElementById('ent-submit'); + var successDiv = document.getElementById('enterprise-success'); + var errorDiv = document.getElementById('ent-form-error'); + + if (!form) return; + + window.entHeadcountChange = function(val) { + var msgSecondary = document.getElementById('ent-filter-msg-secondary'); + var msgYes = document.getElementById('ent-filter-msg-yes'); + if (msgSecondary) msgSecondary.style.display = val === 'secondary' ? 'block' : 'none'; + if (msgYes) msgYes.style.display = val === 'yes' ? 'block' : 'none'; + if (submitBtn) { + submitBtn.disabled = val === 'yes'; + submitBtn.style.opacity = val === 'yes' ? '0.35' : '1'; + submitBtn.style.cursor = val === 'yes' ? 'not-allowed' : 'pointer'; + } + }; + + form.addEventListener('submit', function(e) { + e.preventDefault(); + var headcount = document.getElementById('ent-headcount').value; + if (headcount === 'yes') { + var msgYes = document.getElementById('ent-filter-msg-yes'); + if (msgYes) msgYes.style.display = 'block'; + return; + } + + var name = document.getElementById('ent-name').value.trim(); + var email = document.getElementById('ent-email').value.trim(); + var company = document.getElementById('ent-company').value.trim(); + var size = document.getElementById('ent-size').value; + var useCase = document.getElementById('ent-use').value.trim(); + + if (!name || !email || !company || !size || !useCase || !headcount) { + if (errorDiv) { errorDiv.textContent = 'Please fill out all fields.'; errorDiv.style.display = 'block'; } + return; + } + + if (errorDiv) errorDiv.style.display = 'none'; + if (submitBtn) { submitBtn.textContent = 'Sending...'; submitBtn.disabled = true; } + + fetch('/api/enterprise-inquiry', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({ name: name, email: email, company: company, size: size, use_case: useCase, headcount: headcount }) + }) + .then(function(r) { return r.json(); }) + .then(function() { + if (form) form.style.display = 'none'; + if (successDiv) successDiv.style.display = 'block'; + }) + .catch(function() { + if (submitBtn) { submitBtn.textContent = 'Send inquiry →'; submitBtn.disabled = false; } + if (errorDiv) { errorDiv.textContent = 'Something went wrong. Email enterprise@neurontechnologies.ai directly.'; errorDiv.style.display = 'block'; } + }); + }); +})()") +} diff --git a/src/js/environmental.el b/src/js/environmental.el new file mode 100644 index 0000000..6c542f7 --- /dev/null +++ b/src/js/environmental.el @@ -0,0 +1,19 @@ +// environmental.el -- Environmental page efficiency calculator slider. +// Compiled with: elc --target=js --bundle --minify --obfuscate + +fn main() -> Void { + native_js("(function() { + var slider = document.getElementById('calc-slider'); + var spendEl = document.getElementById('calc-spend'); + var savingsEl = document.getElementById('calc-savings'); + if (!slider) return; + function update() { + var monthly = parseInt(slider.value, 10); + var annual = Math.round(monthly * 0.35 * 12); + if (spendEl) spendEl.textContent = '$' + monthly; + if (savingsEl) savingsEl.textContent = '$' + annual; + } + slider.addEventListener('input', update); + update(); +})()") +} diff --git a/src/js/gallery.el b/src/js/gallery.el new file mode 100644 index 0000000..3b92215 --- /dev/null +++ b/src/js/gallery.el @@ -0,0 +1,186 @@ +// gallery.el -- Gallery page: search/filter, sort, nav scroll, Supabase voting. +// Compiled with: elc --target=js --bundle --minify --obfuscate +// +// Required globals: window.NEURON_CFG.supabase_url, window.NEURON_CFG.supabase_anon_key +// Required CDN: supabase-js@2 + +fn main() -> Void { + native_js("(function() { + // Nav scroll effect + var nav = document.getElementById('nav'); + if (nav) window.addEventListener('scroll', function() { + nav.classList.toggle('scrolled', window.scrollY > 10); + }, { passive: true }); + + // Hamburger + var btn = document.getElementById('nav-hamburger'); + var menu = document.getElementById('nav-mobile'); + if (btn && menu) { + function navClose() { menu.classList.remove('open'); btn.setAttribute('aria-expanded','false'); } + function navOpen() { menu.classList.add('open'); btn.setAttribute('aria-expanded','true'); } + btn.addEventListener('click', function(e) { e.stopPropagation(); menu.classList.contains('open') ? navClose() : navOpen(); }); + menu.querySelectorAll('a').forEach(function(a) { a.addEventListener('click', navClose); }); + document.addEventListener('click', function(e) { if (!nav.contains(e.target)) navClose(); }); + document.addEventListener('keydown', function(e) { if (e.key === 'Escape') navClose(); }); + window.addEventListener('resize', function() { if (window.innerWidth > 1060) navClose(); }); + } + + // Dropdown + var ddBtn = document.querySelector('.nav-dropdown-btn'); + var dd = document.querySelector('.nav-dropdown'); + if (ddBtn && dd) { + ddBtn.addEventListener('click', function(e) { + e.stopPropagation(); + var isOpen = dd.classList.contains('open'); + dd.classList.toggle('open'); + ddBtn.setAttribute('aria-expanded', isOpen ? 'false' : 'true'); + }); + dd.querySelectorAll('.nav-dropdown-item').forEach(function(a) { a.addEventListener('click', function() { dd.classList.remove('open'); }); }); + document.addEventListener('click', function() { dd.classList.remove('open'); }); + } + + // Search + var searchEl = document.getElementById('gal-search'); + var grid = document.getElementById('gallery-grid'); + var noResults = document.getElementById('no-results'); + + function filterCards() { + var q = (searchEl ? searchEl.value : '').toLowerCase().trim(); + var cards = grid ? grid.querySelectorAll('.gal-card') : []; + var visible = 0; + cards.forEach(function(c) { + var match = !q || c.textContent.toLowerCase().indexOf(q) !== -1; + c.classList.toggle('hidden', !match); + if (match) visible++; + }); + if (noResults) noResults.style.display = visible === 0 && q ? 'block' : 'none'; + } + + if (searchEl) searchEl.addEventListener('input', filterCards); + + // Sort + window.setSort = function(mode, btn) { + document.querySelectorAll('.sort-btn').forEach(function(b) { b.classList.remove('active'); }); + btn.classList.add('active'); + if (!grid) return; + var cards = Array.from(grid.querySelectorAll('.gal-card')); + cards.sort(function(a, b) { + if (mode === 'top') { + return parseInt(b.getAttribute('data-score') || '0') - parseInt(a.getAttribute('data-score') || '0'); + } else { + return parseInt(b.getAttribute('data-ts') || '0') - parseInt(a.getAttribute('data-ts') || '0'); + } + }); + cards.forEach(function(c) { grid.appendChild(c); }); + }; + + // Voting via Supabase + var cfg = window.NEURON_CFG || {}; + var sbUrl = cfg.supabase_url; + var sbKey = cfg.supabase_anon_key; + if (!sbUrl || !sbKey) return; + var sb = window.supabase.createClient(sbUrl, sbKey); + var token = null; + var votes = {}; + + function getCtrl(sid) { + var found = null; + document.querySelectorAll('.vote-controls').forEach(function(c) { + if (c.getAttribute('data-share-id') === sid) found = c; + }); + return found; + } + + function applyState(ctrl, state) { + var sid = ctrl.getAttribute('data-share-id'); + votes[sid] = state.user_vote || 'none'; + var scoreEl = ctrl.querySelector('.vote-score'); + if (scoreEl && state.score != null) scoreEl.textContent = state.score; + var upBtn = ctrl.querySelector('.vote-btn.vote-up'); + var dnBtn = ctrl.querySelector('.vote-btn.vote-down'); + if (upBtn) { upBtn.disabled = false; upBtn.classList.toggle('is-active', state.user_vote === 'up'); } + if (dnBtn) { dnBtn.disabled = false; dnBtn.classList.toggle('is-active', state.user_vote === 'down'); } + } + + function loadVoteState(sid) { + var url = '/api/vote-state/' + sid; + if (token) url += '?access_token=' + encodeURIComponent(token); + fetch(url).then(function(r) { return r.json(); }).then(function(d) { + var ctrl = getCtrl(sid); + if (ctrl) applyState(ctrl, d); + }).catch(function() {}); + } + + function loadAll() { + document.querySelectorAll('.vote-controls').forEach(function(ctrl) { + var id = ctrl.getAttribute('data-share-id'); + if (id) loadVoteState(id); + }); + } + + function castVote(sid, direction) { + if (!token) { showSignIn(); return; } + var ctrl = getCtrl(sid); + var btns = ctrl ? ctrl.querySelectorAll('.vote-btn') : []; + btns.forEach(function(b) { b.disabled = true; b.classList.add('is-loading'); }); + fetch('/api/vote', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({access_token: token, id: sid, direction: direction}) + }).then(function(r) { return r.json(); }).then(function(d) { + if (ctrl && d.ok) applyState(ctrl, d); + btns.forEach(function(b) { b.disabled = false; b.classList.remove('is-loading'); }); + }).catch(function() { + btns.forEach(function(b) { b.disabled = false; b.classList.remove('is-loading'); }); + }); + } + + document.querySelectorAll('.vote-controls').forEach(function(ctrl) { + ctrl.querySelectorAll('.vote-btn').forEach(function(btn) { + btn.addEventListener('click', function() { + var sid = ctrl.getAttribute('data-share-id'); + if (!token) { showSignIn(); return; } + var dir = btn.getAttribute('data-direction'); + var cur = votes[sid] || 'none'; + castVote(sid, cur === dir ? 'none' : dir); + }); + }); + }); + + var modal = document.getElementById('signin-modal'); + var cancelEl = document.getElementById('signin-cancel'); + var sendEl = document.getElementById('signin-send'); + var emailEl = document.getElementById('signin-email'); + var msgEl = document.getElementById('signin-msg'); + + function showSignIn() { if (modal) modal.classList.add('open'); if (emailEl) emailEl.focus(); } + + if (cancelEl) cancelEl.addEventListener('click', function() { modal.classList.remove('open'); }); + if (modal) modal.addEventListener('click', function(e) { if (e.target === modal) modal.classList.remove('open'); }); + if (sendEl) sendEl.addEventListener('click', function() { + var email = emailEl ? emailEl.value.trim() : ''; + if (!email) { if (msgEl) msgEl.textContent = 'Please enter your email.'; return; } + sendEl.disabled = true; + if (msgEl) msgEl.textContent = 'Sending...'; + sb.auth.signInWithOtp({ email: email, options: { emailRedirectTo: window.location.href } }) + .then(function(r) { + sendEl.disabled = false; + if (msgEl) msgEl.textContent = r.error + ? (r.error.message || 'Error. Try again.') + : 'Check your email for a sign-in link.'; + }); + }); + if (emailEl) emailEl.addEventListener('keydown', function(e) { if (e.key === 'Enter' && sendEl) sendEl.click(); }); + + sb.auth.onAuthStateChange(function(event, session) { + token = session ? session.access_token : null; + if (token && modal) modal.classList.remove('open'); + loadAll(); + }); + + sb.auth.getSession().then(function(r) { + token = r.data && r.data.session ? r.data.session.access_token : null; + loadAll(); + }); +})()") +} diff --git a/src/js/main.el b/src/js/main.el new file mode 100644 index 0000000..6677662 --- /dev/null +++ b/src/js/main.el @@ -0,0 +1,67 @@ +// main.el -- Share page voting, copy-for-platform social sharing. +// Compiled with: elc --target=js --bundle --minify --obfuscate +// +// Required globals: window.NEURON_CFG.id, window.NEURON_CFG.card_url +// Exposed globals: copyForPlatform(platform, btn) + +fn main() -> Void { + native_js("(function() { + var cfg = window.NEURON_CFG || {}; + var shareId = cfg.id || ''; + var cardUrl = cfg.card_url || ''; + + // Copy-for-platform: format and copy share text for different social platforms + window.copyForPlatform = function(platform, btn) { + var text = ''; + var url = window.location.href; + if (platform === 'tiktok') { + text = 'Neuron said something interesting. Watch this. ' + url; + } else if (platform === 'snapchat') { + text = url; + } else { + text = url; + } + navigator.clipboard.writeText(text).then(function() { + if (btn) { + btn.classList.add('copied'); + setTimeout(function() { btn.classList.remove('copied'); }, 1500); + } + }).catch(function() {}); + }; + + // Vote buttons on share page + var voteUp = document.getElementById('vote-up'); + var voteDown = document.getElementById('vote-down'); + var voteScore = document.getElementById('vote-score'); + var voted = null; + + function updateVoteUI(direction, score) { + if (voteUp) voteUp.classList.toggle('voted-up', direction === 'up'); + if (voteDown) voteDown.classList.toggle('voted-down', direction === 'down'); + if (voteScore && score != null) voteScore.textContent = score; + } + + function castVote(direction) { + var next = voted === direction ? 'none' : direction; + voted = next === 'none' ? null : next; + fetch('/api/vote', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({ id: shareId, direction: next }) + }).then(function(r) { return r.json(); }).then(function(d) { + if (d.ok) updateVoteUI(next === 'none' ? null : next, d.score); + }).catch(function() {}); + } + + if (voteUp) voteUp.addEventListener('click', function() { castVote('up'); }); + if (voteDown) voteDown.addEventListener('click', function() { castVote('down'); }); + + // Load initial vote state + if (shareId) { + fetch('/api/vote-state/' + shareId) + .then(function(r) { return r.json(); }) + .then(function(d) { updateVoteUI(d.user_vote || null, d.score); }) + .catch(function() {}); + } +})()") +} diff --git a/src/js/marketplace.el b/src/js/marketplace.el new file mode 100644 index 0000000..4ef9bf3 --- /dev/null +++ b/src/js/marketplace.el @@ -0,0 +1,42 @@ +// marketplace.el -- Marketplace developer interest form submission. +// Compiled with: elc --target=js --bundle --minify --obfuscate + +fn main() -> Void { + native_js("(function() { + var form = document.getElementById('dev-form'); + if (!form) return; + form.addEventListener('submit', async function(e) { + e.preventDefault(); + var msg = document.getElementById('dev-msg'); + var btn = form.querySelector('button[type=submit]'); + btn.disabled = true; + btn.textContent = 'Sending...'; + try { + var r = await fetch('/api/developer-interest', { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({ + name: document.getElementById('dev-name').value, + email: document.getElementById('dev-email').value, + idea: document.getElementById('dev-idea').value + }) + }); + msg.style.display = 'block'; + if (r.ok) { + msg.textContent = 'Got it. Will review it personally and reach out.'; + msg.style.color = 'var(--navy)'; + form.reset(); + } else { + msg.textContent = 'Something went wrong. Email developers@neurontechnologies.ai directly.'; + msg.style.color = '#c44'; + } + } catch(err) { + msg.style.display = 'block'; + msg.textContent = 'Connection error. Email developers@neurontechnologies.ai directly.'; + msg.style.color = '#c44'; + } + btn.disabled = false; + btn.textContent = 'Send interest →'; + }); +})()") +} diff --git a/src/js/nav.el b/src/js/nav.el new file mode 100644 index 0000000..8c3ecc0 --- /dev/null +++ b/src/js/nav.el @@ -0,0 +1,56 @@ +// nav.el -- Navigation hamburger menu and Mission dropdown. +// Compiled with: elc --target=js --bundle --minify --obfuscate + +fn main() -> Void { + native_js("(function() { + var btn = document.getElementById('nav-hamburger'); + var menu = document.getElementById('nav-mobile'); + var nav = document.getElementById('nav'); + if (!btn || !menu) return; + + function close() { + menu.classList.remove('open'); + btn.setAttribute('aria-expanded', 'false'); + } + function open() { + menu.classList.add('open'); + btn.setAttribute('aria-expanded', 'true'); + } + function toggle() { + if (menu.classList.contains('open')) { close(); } else { open(); } + } + + btn.addEventListener('click', function(e) { e.stopPropagation(); toggle(); }); + + var ddBtn = document.querySelector('.nav-dropdown-btn'); + var dd = document.querySelector('.nav-dropdown'); + if (ddBtn && dd) { + ddBtn.addEventListener('click', function(e) { + e.stopPropagation(); + var isOpen = dd.classList.contains('open'); + dd.classList.toggle('open'); + ddBtn.setAttribute('aria-expanded', isOpen ? 'false' : 'true'); + }); + dd.querySelectorAll('.nav-dropdown-item').forEach(function(a) { + a.addEventListener('click', function() { dd.classList.remove('open'); }); + }); + document.addEventListener('click', function() { dd.classList.remove('open'); }); + } + + menu.querySelectorAll('a').forEach(function(a) { + a.addEventListener('click', close); + }); + + document.addEventListener('click', function(e) { + if (!nav.contains(e.target)) { close(); } + }); + + document.addEventListener('keydown', function(e) { + if (e.key === 'Escape') { close(); } + }); + + window.addEventListener('resize', function() { + if (window.innerWidth > 1060) { close(); } + }); +})()") +} diff --git a/src/js/styles.el b/src/js/styles.el new file mode 100644 index 0000000..694c0b5 --- /dev/null +++ b/src/js/styles.el @@ -0,0 +1,99 @@ +// styles.el -- Landing page JS: nav scroll, scroll-reveal, founding counter polling, +// checkout button routing. +// Compiled with: elc --target=js --bundle --minify --obfuscate + +fn main() -> Void { + native_js("(function() { + 'use strict'; + + // Nav scroll effect + var nav = document.getElementById('nav'); + if (nav) { + window.addEventListener('scroll', function() { + if (window.scrollY > 40) { + nav.classList.add('scrolled'); + } else { + nav.classList.remove('scrolled'); + } + }, { passive: true }); + } + + // Auto-open chat if ?open=chat in URL + if (typeof URLSearchParams !== 'undefined' && new URLSearchParams(window.location.search).get('open') === 'chat') { + setTimeout(function() { if (typeof neuronDemoToggle === 'function') neuronDemoToggle(); }, 600); + } + + // Scroll reveal via IntersectionObserver + var revealEls = document.querySelectorAll('.reveal'); + if ('IntersectionObserver' in window) { + var observer = new IntersectionObserver(function(entries) { + entries.forEach(function(entry) { + if (entry.isIntersecting) { + entry.target.classList.add('visible'); + observer.unobserve(entry.target); + } + }); + }, { threshold: 0.12, rootMargin: '0px 0px -40px 0px' }); + revealEls.forEach(function(el) { observer.observe(el); }); + } else { + revealEls.forEach(function(el) { el.classList.add('visible'); }); + } + + // Founding counter polling + var prevSold = null; + function updateFoundingUI(data) { + var remaining = data.remaining; + var sold = data.sold; + var total = data.total; + var pct = Math.round((sold / total) * 100); + var flash = prevSold !== null && sold > prevSold; + prevSold = sold; + + var spotLabel = document.querySelector('.founding-spots-label'); + if (spotLabel) spotLabel.textContent = 'Only ' + remaining + ' left'; + var spotFill = document.querySelector('.founding-spots-fill'); + if (spotFill) spotFill.style.width = pct + '%'; + var spotSub = document.querySelector('.founding-spots-sub'); + if (spotSub) spotSub.textContent = sold + ' of ' + total + ' claimed'; + + var bannerCount = document.querySelector('.founding-banner-count'); + if (bannerCount) { + bannerCount.textContent = remaining; + if (flash) { + bannerCount.style.color = '#0078D4'; + setTimeout(function() { bannerCount.style.color = ''; }, 1200); + } + } + var bannerFill = document.querySelector('.founding-banner-fill'); + if (bannerFill) bannerFill.style.width = pct + '%'; + } + + function pollFoundingCount() { + fetch('/api/founding-count') + .then(function(r) { return r.json(); }) + .then(function(data) { updateFoundingUI(data); }) + .catch(function() {}); + } + pollFoundingCount(); + setInterval(pollFoundingCount, 90000); + + // Hide chat widget on non-marketing pages + if (window.location.pathname.indexOf('/checkout') === 0 || + window.location.pathname.indexOf('/account') === 0 || + window.location.pathname.indexOf('/legal') === 0 || + window.location.pathname.indexOf('/marketplace/success') === 0) { + var demoBtn = document.getElementById('neuron-demo-btn'); + var demoPanel = document.getElementById('neuron-demo-panel'); + if (demoBtn) demoBtn.style.display = 'none'; + if (demoPanel) demoPanel.style.display = 'none'; + } + + // Checkout buttons + var checkoutBtns = document.querySelectorAll('[data-checkout]'); + checkoutBtns.forEach(function(btn) { + btn.addEventListener('click', function() { + window.location.href = '/checkout?plan=' + btn.getAttribute('data-checkout'); + }); + }); +})()") +} diff --git a/src/main.el b/src/main.el index 2a4c0c4..3c064f3 100644 --- a/src/main.el +++ b/src/main.el @@ -341,7 +341,7 @@ body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;bac Try Neuron ↗
- + " } @@ -843,6 +843,19 @@ fn handle_request(method: String, path: String, body: String) -> String { return content } + // ── Compiled client-side JS: /js/* ─────────────────────────────────────── + // Served from dist/js/ (compiled by elc --target=js at build time). + // LANDING_ROOT/js maps to the dist/js output directory in the image. + if str_starts_with(path, "/js/") { + let rel: String = str_slice(path, 4, str_len(path)) + let abs: String = src_dir + "/js/" + rel + let content: String = read_asset(abs) + if str_eq(content, "") { + return "{\"__status__\":404,\"error\":\"not found\"}" + } + return content + } + // ── Brand assets: /brand/* ──────────────────────────────────────────────── if str_starts_with(path, "/brand/") { let rel: String = str_slice(path, 7, str_len(path)) @@ -1890,6 +1903,7 @@ println(" POST /api/checkout → Stripe checkout session") println(" POST /api/webhooks/stripe → Stripe webhook") println(" GET /marketplace/success → post-purchase success page") println(" GET /assets/* → static files") +println(" GET /js/* → compiled client-side JS (dist/js/)") println(" GET /brand/* → brand files") println(" GET /api/supabase-config → public Supabase config (URL + anon key)") println("") diff --git a/src/marketplace.el b/src/marketplace.el index 2e2f6e8..ed89b60 100644 --- a/src/marketplace.el +++ b/src/marketplace.el @@ -132,7 +132,7 @@ fn marketplace() -> String { - + diff --git a/src/nav.el b/src/nav.el index 48c89cb..b4d1e94 100644 --- a/src/nav.el +++ b/src/nav.el @@ -52,6 +52,6 @@ fn nav() -> String { - + " } diff --git a/src/styles.el b/src/styles.el index c52cec6..65ec9a3 100644 --- a/src/styles.el +++ b/src/styles.el @@ -1967,7 +1967,7 @@ fn page_open() -> String { fn page_close() -> String { return " - +
@@ -2023,7 +2023,7 @@ fn page_close() -> String {
- + "